본문 바로가기
반응형

개발언어/SQL46

MSSQL 2008 R2 Transaction 로그삭제 (100MB로 제한) MSSQL 트랜젝션 및 쿼리 속도가 느려질 때 Log 자르기 처리를 하여야 합니다. /* MSSQL 2008 R2 Transaction 로그삭제 (100MB로 제한) */ use tax000003 ALTER DATABASE [tax000003] SET recovery simple GO DBCC SHRINKFILE ('tax000003_log', 100); GO ALTER DATABASE [tax000003] SET recovery full GO 쿼리 속도가 느려지는 원인은 여러가지 있습니다. http://www.dbguide.net/db.db?cmd=view&boardUid=13767&boardConfigUid=9&categoryUid=216&boardIdx=66&boardStep=1 위의 상세한 설명이.. 2014. 2. 26.
Mysql if exists insert 하기 Mysql에서 데이타 존재여부를 확인하여 insert 처리를 하려고 합니다. MSSQL처럼 if exists로 쉽게 처리할 수 있을거라고 생각했지만 고생을 조금하였네요. not exists 의 경우 제약사항이 있어 mssql처럼 if then 문으로 처리는 불가능하지만 where에서 어느정도 처리를 할 수 있었습니다. MYSQL - IF NOT EXISTS ... INSERT INTO 처리를 하려면 where에 넣어야 합니다. 아래의 쿼리는 제가 작성한 쿼리입니다. 간단히 ofgroupprop 테이블에 '0000007' 이 존재하지 않으면 insert하는 간단한 코드입니다. INSERT INTO ofgroupprop (groupName, name, propValue) SELECT groupName, na.. 2011. 12. 1.
SQLite 어셈블리어 실행오류 - BadImageFormatException이(가) 처리되지 않았습니다. BadImageFormatException이(가) 처리되지 않았습니다. 파일이나 어셈블리 'System.Data.SQLite, Version=1.0.76.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139' 또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다. 프로그램을 잘못된 형식으로 로드하려고 했습니다. System.BadImageFormatException: Could not load file or assembly 'System.Data.SQLite, Version=1.0.65.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139' or one of its dependencies. An attem.. 2011. 11. 12.
SQLite - Unable to load DLL 'SQLite.Interop.DLL' DllNotFoundException이(가) 처리되지 않았습니다. DLL 'SQLite.Interop.dll'을(를) 로드할 수 없습니다. 지정된 모듈을 찾을 수 없습니다. (예외가 발생한 HRESULT: 0x8007007E) SQLite을 이용하여 Conncet을 하려는 데 오류가 발생하였다. 해결책 Robert Simpson saids The only time you'll ever see any reference to SQLite.Interop.DLL is if you downloaded the provider source code and compiled it yourself in Debug mode. In Release mode, the SQLite.Interop.DLL doesn't exist. .. 2011. 11. 11.
MSSQL Getdate 날짜포멧 MSSQL Getdate 날짜포멧ms sql로 현재 날짜를 출력할때 getdate() 함수를 이용하는 데 출력형식에 따라서 sql getdate 함수의 날짜포멧으로 지정하면 됩니다. 가장많이 쓰이는 Select Convert(varchar(10),Getdate(),112) 의 경우 getdate로 구한 날짜를 convert 함수로 포멧을 지정하여 컨버트시켜서 출력을 해주어 날짜를 표기합니다. 아래의 방법은 Getdate 함수의 표기형식에 따른 쿼리 방법입니다. Getdate 함수란? 현재 데이터베이스 시스템 타임스탬프를 데이터베이스 표준 시간대 오프셋 없이 datetime 값으로 반환합니다. 이 값은 SQL Server 인스턴스를 실행하는 컴퓨터의 운영 체제에서 파생됩니다. MSDN 참고 : http:/.. 2011. 1. 6.
MSSQL Identity 제거 하기 MSSQL Identity 제거 하기 MSSQL Identity 제거 하려면 어렵습니다. Identity 속성인 컬럼은 제거할 수 없습니다. Identity 컬럼 속성을 제거 하려면 컬럼 임시로 만들고 컬럼을 복사후, 제거해서 같은 이름으로 지정하는 방법의 우회적인 방법이 있습니다. Identity 컬럼 속성을 제거 할 방법은 EM에서 Identity 체크를 해제해서 속성 제거를 할 수 있습니다. 하지만 패키지 프로그램의 경우 쿼리를 배포해야 하기 때문에 EM에서 할 수는 없기 때문에 쿼리를 작성해서 배포해야 합니다. Identity 컬럼의 속성을 보면 sp_help 로 테이블의 LABORATORY_MATERIAL_ID 컬럼의 속성은 identity 속성으로 로우줄이 추가 될 수록 1씩 증가되게 되어 있.. 2010. 12. 27.
SQL 컬럼이 있는지 확인하여 컬럼 추가하는 쿼리 SQL 컬럼이 있는지 확인하여 컬럼 추가하는 쿼리 IF NOT EXISTS (SELECT * FROM DBO.SYSCOLUMNS WHERE ID = OBJECT_ID(N'[DBO].[TB_PUBLIC_INJURY]') AND OBJECTPROPERTY(ID, N'IsUserTable') = 1 AND NAME ='SANGBYUNG') " "ALTER TABLE TB_PUBLIC_INJURY ADD SANGBYUNG [varchar] (10), SPEC_SIGN [varchar] (10) DB에 해당 컬럼이 있는지 검사하여 해당 테이블에 쿼리가 없다면 컬럼을 추가한다. 해당 인덱스가 있는지 확인후, 인덱스가 있다면 다른 인덱스로 교체처리한다. IF EXISTS (SELECT * FROM DBO.sysind.. 2010. 6. 17.
sysobjects EXISTS table function 지우고 생성하기 sysobjects EXISTS table function 지우고 생성하기 테이블이 존재하면 지우고자 할때, 또는 SQL 함수(Function)이 존재할 경우 지우고 생성하고 자 할때 사용한다. Function 함수가 존재할 경우 지우고 생성 IF EXISTS (SELECT * FROM sysobjects WHERE name = 'H3P_ITEM_POSITION' AND type = 'FN') BEGIN DROP FUNCTION FN_StrCustomCmp END GO Table 테이블이 존재할 경우 지우고 생성 IF EXISTS(SELECT 1 FROM sysobjects WHERE ID = OBJECT_ID(N'H3P_ITEM_POSITION') AND type = (N'U')) BEGIN DROP .. 2010. 6. 11.
SQL *= 문법 =* 문법 넌 누구냐? 외부쿼리? SQL-92 외부 조인 구문을 권장한다. SQL *= 문법 =* 문법 넌 누구냐? 외부쿼리? SQL-92 외부 조인 구문을 따르라 SQL Server 2005에서는 기본적으로 SQL-92 외부 조인 구문만 지원하므로, 앞으로 쿼리를 새롭게 작성하거나 수정할 때는 SQL-92 외부 조인 구문 형태로 작성하시기 바랍니다. SQL Server 2000에는 SQL-92 외부 조인 구문과 WHERE 절에서 *= 또는 =* 연산자를 사용하여 외부 조인을 지정하는 레거시 구문을 모두 지원했습니다. 그렇지만 SQL Server 2000 온라인 설명서에 "SQL-92 구문은 레거시 Transact-SQL 외부 조인에서 발생할 수 있는 모호성이 없으므로 SQL-92 구문을 사용하는 것이 좋습니다." 라고 기술되어 있었고 마이크로소프트에서는 SQL-92 표준 외부.. 2010. 5. 19.
SQL A,B,C 문자열에서 구분자(,)로 나누어 문자비교하기 SQL A,B,C 문자열에서 구분자(,)로 나누어 문자비교하기 사용예) select dbo.FN_StrCustomCmp('cc ', 'abc, bd, cc, dd, ee') 문자열 A,B,C,D,E,F 등의 , 로 구분하여 저장한 필드에서 원하는 문자열을 찾았는지 리턴해줌 (1: true / 0: false) MSSQL에서 문자열 나누기함수를 이용하여 작성한것입니다. MS Sql Server - Drop Function If Exists SQL Function 함수가 존재하는 지 확인하여 존재하면 삭제후 수행한다 1 IF EXISTS (SELECT * FROM sysobjects WHERE name = 'FN_StrCustomCmp' AND type = 'FN') 2 BEGIN 3 DROP FUNCTIO.. 2010. 5. 13.
mssql Go 명령어로 쿼리 나누어서 실행하는 예제 mssql Go 명령어로 쿼리 나누어서 실행하는 예제 여러개의 쿼리를 실행시 주의해야 할 사항들이다. 그중 하나의 방법이 Go문을 사용하여 쿼리를 나누어서 실행하는 방법이다. 두개 이상의 쿼리를 하나로 날리는 경우 1 select 1 2 select 2 위의 쿼리는 2개이지만 실행시 내부적으로는 하나의 쿼리를 생성하여 출력된다. 하지만 여러개의 쿼리를 수행시 create view 나 procedure 같은 문법의 경우 쿼리의 맨 앞에 시작에 와야 한다. 그래서 go문을 사용하여 나누어 실행되게 수행한다. 1 select 1 2 go 3 select 2 4 go 5 6 create view test_a as 7 select 3 as b 8 go Go문은 아주 중요하다. 쿼리를 나누어서 실행해야 하는 경우 .. 2010. 5. 13.
CMD 도스창으로 MSSQL 접속하기 CMD 도스창으로 MSSQL 접속하기 osql -u sa 2010. 5. 4.
column 길이 조정하기 및 default ' ' 지정 1. 테이블의 컬럼제약 조건을 지운다. alter table tpo_order drop constraint DF__tpo_order__remar__334BA2D4 2. 컬럼의 길이를 변경한다. 100에서 1500으로 수정하였음 alter table tpo_order alter column remark varchar(1500) not null --default(' ') 디폴트가안된다.. 3. 컬럼 제약조건을 추가한다. alter table tpo_order add constraint DF__tpo_order__remar__334BA2D41 4. 컬럼의 디폴트값을 지정한다. alter table tpo_order add constraint DF__tpo_order__remar__334BA2D41 defaul.. 2009. 1. 14.
쿼리속도 체크 원문: http://mystop.tistory.com/192 (항상감사합니다) 사용하기 sp_checkqry "select top 10000 * from tsp_requestsub with (index=tsp_requestsub_idx_con)" 실행후 쿼리의 속도가 1/100 단위로 나옴 프로시져만들기 CREATE procedure sp_checkqry @status varchar(2000) , @status2 varchar(2000) = '' , @status3 varchar(2000) = '' , @status4 varchar(2000) = '' , @status5 varchar(2000) = '' , @status6 varchar(2000) = '' as set transaction isolati.. 2009. 1. 9.
sql 로그줄이기 방법1. 일회적인 로그 줄임방법 dbcc shrinkfile (log_file name, size(MB)) 방법2. 지속적인 사이즈 유지 backup log db_name with no_log EM-데이터베이스축소-파일축소-로그파일선택, "압축 후 빈 공간 잘라내기" 실행 2009. 1. 7.
db 로그 줄이기 ( shrinkdatabase ) use DB명 backup log DB명 with truncate_only dbcc shrinkdatabase (DB명 ) msdn DBCC SHRINKDATABASE(Transact-SQL) 2008. 12. 30.
Microsoft SQL Server 2005 Express Edition 온라인 설명서 온라인 설명서 링크 http://msdn.microsoft.com/ko-kr/library/ms165706(SQL.90).aspx SQL Server 2005 온라인 설명서(2008년 11월) Microsoft SQL Server 2005 Express Edition 온라인 설명서 Microsoft SQL Server 2005 Express Edition(SQL Server Express) 온라인 설명서입니다. 이 설명서는 SQL Server Express에 대한 이해를 도와줍니다. SQL Server Express는 Microsoft SQL Server 2005에 따라 설계된 클라이언트 데이터베이스 플랫폼입니다. 특징적인 기능으로는 간편한 사용, 강력한 클라이언트 데이터베이스 및 Microsoft Vi.. 2008. 12. 19.
sql 2005 xp에서 설치하기 팁을 퍼왔다. 꼭 살펴봐야 할거 같다. XP 프로페셔널은 엔터프라이져가 설치가 안된다. [프로그램을 설치할때 가장 주의할 점] 1. 자신의 Windows 환경에 맞는 프로그램 선택 - Windows XP에서는 Standard, Developer, Express Edition 만 설치된다. Enterprise는 설치되지 않는다. 2. 설치 전에 필요한 프로그램 확인 - IIS의 설치 유무를 확인한다. 3. 설치 중간 시스템 구성 검사 - 오류나 경고가 없어야만 정상적으로 작동할 수 있다. 오류나 경고 발생시 메시지를 확인하고 필요한 조치를 취하자. 4. 설치 중간 서비스 계정 선택 - 개인이 사용하는 컴퓨터는 도메인 멤버로 참여하지 않는다. (회사나 사내 네트워크를 사용하는 곳에서만 적용, Windows .. 2008. 12. 6.
sql 제약조건 삭제하기 / PRIMARY KEY 삭제하고 추가하기 sql 제약조건 삭제하기 / PRIMARY KEY 삭제하고 추가하기 sp_help tsp_stockcontrol 해서 보면 PK_tsp_stockcontrol 이라는 제약조건을 볼 수 있다 -----제약조건삭제하기 alter table tsp_stockcontrol drop constraint PK_tsp_stockcontrol ---필드를 삭제하고 자 할때 ---필드날리기 (제약조건 삭제후 컬럼삭제할것) alter table tsp_disusesub drop column [삭제할 컬럼명] -----제약조건추가하기 ALTER TABLE tsp_stockcontrol ADD CONSTRAINT PK_tsp_stockcontrol PRIMARY KEY (gubun, condate, bomcode, input.. 2008. 11. 21.
쿼리 퀴즈문제 --명구선배님 [퀴즈] 출판업 출고테이블이 있습니다. 출고 및 반품 처리시 입력된 거래처 와 품목코드에 해당하는 가장 최근 날짜에 입력된 출고율을 그대로 이번 출고 반품 처리시에도 적용하기 위해서 세부내역 첫번째 컬럼 아이템코드에 아이템코드를 입력하고 키다운시 출고율을 가져와야 합니다. 이때 쿼리는 얼케 짤까? 테이블 t_sale_deliverysub 컬럼 gubun , itemcode , custcode , outrate , condate 기본조회 select outrate from t_sale_deliverysub where gubun='01' and custcode='?????' and itemcode='?????' 내일아침까지 가장 최적화된 쿼리를 짜보세용 아마 위에 예시가 이경우만이 아니라 많은.. 2008. 11. 20.
2개씩 홀수, 짝수로 가로 뽑아서 세로로 세울때 2005에서만 가능함 명구선배님 쿼리 with h_gub_rule1CTE (rownum , plusname , scode , sname) AS ( select row_number() over(order by gub_scode) as rownum , a.gub_scode + '@' + b.sd_name as plusname , a.gub_scode as scode , b.sd_name as sname from h_gub_rule as a left outer join h_sudang as b on a.gub_gubun = b.sd_gubun and a.gub_scode = b.sd_code WHERE a.gub_gubun ='01' and a.gub_month ='200811' and {fn substrin.. 2008. 11. 20.
임시테이블 OBJECT_ID OBJECT_ID 함수를 이용하여 해당 테이블이 존재하는지 여부를 검사할 때 다음과 같이 사용하게 됩니다. IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'MY_TABLE') AND type in (N'U')) -- 'MY_TABLE' 테이블이 존재함. 하지만, 임시 테이블의 존재 여부를 검사할 때는 그냥 위와 같이 하면 테이블을 100% 찾을 수 없다고 나옵니다. 임시 테이블은 TEMPDB에 생성되므로 그곳에서 테이블에 대한 OBJECT_ID를 얻어와야 합니다. 따라서 다음과 같이 코드를 수정해야만 합니다. IF EXISTS (SELECT * FROM tempdb.sys.objects WHERE object_id = OBJECT_I.. 2008. 11. 17.
테이블 기본키 잡기 table primary key create table t_room_master ( jr_gubun varchar(2) default '', jr_code char(5) default '', jr_name varchar(100) default '', jr_lgrpname varchar(50) default '', jr_mgrpname varchar(50) default '', jr_del char(1) default '', jr_remark varchar(255) default '', inuser varchar(20) default '', indate char(12) default '' primary key(jr_gubun, jr_code) ) 2008. 7. 25.
[Oracle 오라클] import / export 팁: 원격에서 접속하려면 @TNS명을 지정하면 된다^^! exp userid=계정명/패스워드@TNS명 file=백업된파일 저장위치 log=백업과정의 로그 정보 저장 위치 export =>사용형식 exp userid/passwd tables=table_name file=/tmp/file.dmp =>Export Paramger - userid : EXPORT를 실행시키고 있는 username/password명. - buffer : 데이터 행들을 가져오는데 사용되는 버퍼의 크기. - file : 생성되는 EXPORT덤프 파일명. - filesize : EXPORT덤프 파일의 최대 크기 - grants : 데이터베이스 객체에 대한 권한 정보의 EXPORT여부 (Y/N 플래그) - indexes : 테이블에 대한.. 2008. 7. 14.
[ORACLE] Table space 및 사용자 계정 생성 방법 1) Table space 생성 create tablespace OPPRA datafile '/oracle/SAFEDB/oradata/Ora10g/oppra.dbf' size 500m autoextend on next 100m maxsize 700m; create temporary tablespace OPPRATEMP tempfile '/oracle/SAFEDB/oradata/Ora10g/oppratemp.dbf' size 200m autoextend on next 100m maxsize 500m; 2) 사용자 계정 생성 create user oppra identified by ocspgd default tablespace OPPRA temporary tablespace OPPRATEMP; 2008. 7. 11.
오라클 디비 접속 연결 정보 ~~~~ 우선 ODBC를 설정하자 ~~~~~~ "제어판-ODBC설정-시스템 DSN"에서 "추가"버튼을 클릭한 후에 데이타원본에대한 드라이버는 "Microsoft ODBC for oracle"을 선택하고 "데이타 원본"은 프로그램에서 사용할 SERVICE Name을 "설명"과 "사용자이름"은 무시, "서버"에 "2:" -- 로컬 서버라는 의미 --를 적은후에 "확인"버튼을 클릭하면 ok 프로그램에서 사용자명/패스워드를 지정하면 ok입니다... ~~~ 비베에서 세팅했다. ~~~ ~~~ 하도 말을 잘 안들어서 직접실행창에다 넣었다 ㅎㅎ ~~~ VB에서의 예제 Set RdoEnv = rdoEngine.rdoEnvironments(0) RdoEnv.UserName = "SCOTT" RdoEnv.Password =.. 2008. 7. 3.
Oracle Database HOWTO Oracle Database HOWTO http://kldp.org/HOWTO/html/Oracle/Oracle-HOWTO.html#toc3 2008. 7. 2.
MS SQL Server 2000, 외부에서 접속이 안될때 확인사항 갑자기 Mssql 이 외부에서 접속이 안된다. 난 이렇게 했다. 1433 sql 포트가 열려 있지 않았다. 해결책은 http://www.tfh.or.kr/bbs/board.php?bo_table=it_computer&wr_id=8375 여기서 좀받았다. 링크 3개 확인을 하면 된다. http://blog.naver.com/kbs1972?Redirect=Log&logNo=33821370 http://blog.naver.com/aladdin76?Redirect=Log&logNo=40046043155 http://blog.naver.com/newbie79?Redirect=Log&logNo=130006456029 나의 경우 서비스팩 3을 건너띄고 4를 설치했을 때의 문제 같았다. 1433 포트가 열리지 않은 문.. 2008. 4. 25.
sql 튜닝가이드 sql 튜닝가이드 2008. 3. 28.
linkedserver를 걸고 insert, delete, update시 트리거로 서버동기화 시키기 2008/03/06 - [분류 전체보기] - 분산 트랜잭션을 실행하면 SQLOLEDB에 7391 오류 메시지가 나타날 수 있다 linkedserver를 걸고 insert, delete, update시 트리거로 서버동기화 시키기 제목내가 지었지만 참 이상네 ㅋㅋ 구글이 영문사이트중 좋은걸 찾아주었다. 트리거도 만들어 두었네. 그런데 역시나 잘 동작하는 거 같더니.... 테스트 한 내서버에서는 제약조건을 내뱉는 다 . 제길... 서버: 메시지 2627, 수준 14, 상태 1, 프로시저 TRI_AUTO_INSERT, 줄 6 PRIMARY KEY 제약 조건 'PK_p_store_order'을(를) 위반했습니다. 'p_store_order' 개체에 중복 키를 삽입할 수 없습니다. 제길.. 삽입은 처음만 되는군. .. 2008. 3. 6.
반응형