블로그 이미지
bedbmsguru

Notice

Recent Post

Recent Comment

Recent Trackback

Archive

calendar

1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
  • total
  • today
  • yesterday
2010. 11. 3. 11:37 SQL SERVER

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)몇몇 지원되지 않는 명령어도 있음

posted by bedbmsguru