sqlcmd -S 아이피 -U 아이디 -P 암호
대소문자를 구분하므로 주의해서 사용할 것
(1) 실행시옵션 (해석안되는것 + 필요없을듯한것 제외 더 있음)
1)윈도우인증으로 로그인 하려면 -E 를 사용
2) -l (로그인 타임아웃시간:0은 타임아웃시간 무한대) -t 쿼리실행 타임아웃시간
3) -d 기본데이타베이스 지정
4) C:\>SQLCMD /E /q "select * from HumanResources.Department"/d AdventureWorks
-q 지정된 쿼리를 실행후 종료하고 sqlcmd prompt로 빠져나온다.
-Q 지정된 쿼리를 실행후 종료하고 CMD 창까지 빠져나온다.
5) -a 512 에서 32767까지 서버로 한번에보낼 packet사이즈를 지정한다.
(패킷사이즈를 크게 지정할 경우 large script의 실행성능이 향상됨.)
6) -I QUOTED_IDENTIFIER 옵션을 on으로 한다. (default 는 off)
Formatting Options
7) -s 칼럼구분자를 지정할 수 있다 (default는 공백)
8) -w 스크린 사이즈를 지정 (default = 80)
9) -W 출력 row 제일뒤쪽 공백을 제거
10)-h n(정수) 컬럼의 결과를 n개씩의 그룹으로 만들어서 출력
11) -Y n char(1...8000), nchar(1...4000), varchar(1...8000), nvarchar(1...4000), and varian 칼럼의 출력길이를 n으로 제한한다. (default = 0 :제한없음)
12) -y large datatype varchar(max), nvarchar(max), varbinary(max), XML, user-defined types, ntext, text, image의 출력길이제한
Execution Options
13) -c 쿼리실행 command를 지정할 수 있다. (default = go)
14) -p 성능통계 정보를 표시해준다. (option으로 1을 주면 각 통계정보를 : 으로 구분하여 보여줌 엑셀에서 볼때 편리함)
-p 옵션의 통계정보는 DBMS에 추가적인 부담 주지 않기 때문에 load가 심한 서버에서도 사용가능하다
File Stream and Redirection Options
15) -i input_file[,file2...] 실행할 스크립트 파일들 파일이름에 공백이 있을 경우 ""를 사용한다.
C:\sqlscripts>SQLCMD -i"file 1.sql","file 2.sql"
16) -o output_file 결과를 기록할 파일
Security and Scripting Options
17 -v 스크립트 실행전에 변수지정
cf) 변수 지정은 sqlcmd 에서 :setvar <variable name>="<variable value>" 명령어로도 가능
Ex)변수 사용예제
backup.sql내용 --> BACKUP DATABASE $(db) TO DISK = "$(path)\$(db).bak"
C:>SQLCMD ic:\backup.sql -vdb="pubs" path="c:\data"
(2)SQLCMD Commands
1) GO 쿼리를 실행한다. 옵션으로 숫자 'n'을 줄 경우 쿼리를 n번 실행한다.
2) :RESET statement cache삭제
CF) SQLCMD에서 모든 sql문은 batch terminator를 만날때까지 입력된 내용은 캐싱하고 있다.
3) :ED 현재 SQL Buffer 에서 SQLCMDEDITOR에 등록된 Editor를 실행 Default = (edit)
이미 실행시킨 Query에서
4) :!! Windows Command를 실행시킬 수 있다.
5) :QUIT 현재 SQLCMD Session을 즉시 종료한다 (statement cache내용은 실행하지 않고무시한다)
6) :Exit 괄호가 없으면 quit과 같은 동작을 한다
:Exit() Statement Cache에 저장되어 있던 쿼리들을 실행하고 종료한다. (에러나면 에러출력후종료)
:Exit(query)Statement Cache에 저장되어 있던 쿼리들을 실행하고 ()안의쿼리까지 실행후 종료
7) :SETVAR 변수이름 변수값 변수할당 삭제 하고 싶으면 :SETVAR 변수이름 을 하면된다.
8) :r "파일이름(SQL스크립트)" 외부에 있는 SQL스크립트를 불러와서 실행
CF)파일 확장자는 중요하지 않음 sqlcmd는 sql statement가 들어있는 txt파일로 인식한다.
9) :SERVERLIST Local에 등록되어있거나 같은 네트워크에 있는 SQL SERVER를 보여줌
10):listvar 현재 정의 되어 있는 변수리스트를 출력한다.
11):현재 statement cache에 저장되어 있는 내용을 출력한다.
12):ERROR <filename>/STDERR/STDOUT - 에러결과를 지정된 file이나 stderr, stdout 으로 출력시킨다.
13):OUT <filename>/STDERR/STDOUT - 쿼리 결과를 지정된 file이나 stderr, stdout 으로 출력시킨다.
14):PERFTRACE <filename>/STDERR/STDOUT 성능 통계정보(-pw정)를 지정된 file이나 stderr, stdout 으로 출력시킨다.
15):ON ERROR [exit/ignore] 실행중 에러가 발생했을 경우 어떻게 처리할 것인가를 정한다.
Exit) 에러를 출력하고 종료한다.
Ignore)에러를 무시하고 실행을 계속한다.에러메시지는 출력해줌.
16):XML [ON/OFF] - 결과값에 XML 데이타가 있을때 적절한 XML형식을 지정 가능하다.
CF)이 옵션을 on으로 할 경우 에러메시지도 XML형식으로 나온다.
SSMS에서 도구-->옵션-->쿼리실행-->SQL Server-->일반--> "기본적으로SQLCMD 모드로 새쿼리를 엽니다" 체크박스를 클릭하면 SSMS에서도 SQLCMD를 활용가능하다.
-CF)몇몇 지원되지 않는 명령어도 있음
'SQL SERVER' 카테고리의 다른 글
procedure 결과값을 select 하기 (0) | 2011.01.31 |
---|---|
SQL SERVER Named Instance에 연결하기 (0) | 2010.11.03 |
System Database Restore OR move하는법 (0) | 2010.11.03 |
특정 프로세스가 실행중인 쿼리 보기 (0) | 2010.11.03 |
Blocking 체크 (0) | 2010.11.03 |