태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

NSIS (Nullsoft Scriptable Install System) 에서 SQL Server Script 를 실행하는 방법이다. 사실 방법이라기보단 1원짜리 팁 정도일까?

SQL Script 를 실행할 수 있는 MSSQL OLEDB plug-in 이라는 플러그인이 있긴 하다. 하지만, 수십 수백 개의 프로시저 또는 사용자 정의 함수들은 실행할 수는 없다.컴파일 자체가 안 되는 버그까지 생기는 걸 봐서는 아직 쓸만하다 할 순 없고, 간단한 QUERY 를 날려서 결과를 확인해야 한다거나 하면 쓸만하다 하겠다.

어쨌든 방법은 이렇다.

1) SQL script(xx.sql) 파일을 일반 설치 파일처럼 복사한다.
2) osql.exe을 이용해서 스크립트를 실행한다.
3) 복사된 xx.sql을 삭제한다.

매우 간단히 끝이다. ㅋㅋ

  1. ; 설치할 디렉토리
  2.   InstallDir “C:\_Dir_”
  3.   SetOverwrite on
  4.  
  5.   ; sql script를 설치할 디렉토리에 복사
  6.   SetOutPath “$INSTDIR”
  7.   File “C:\xx.sql”
  8.   ; sql script 실행
  9.   ; 2005 \90\, 20000 \80\
  10.   ReadRegStr $R1 HKLM “SOFTWARE\Microsoft\Microsoft SQL Server\90\Tools\ClientSetup” “SQLPath”
  11.   GetTempFileName $R0
  12.   ; 2005: osql.exe, 2000: isql.exe
  13.   ExecWait ‘"$R1\Binn\osql.exe" -U "sa" -P "pwd" -S  "servername" -d dbname -i "$INSTDIR\xx.sql" -o "$R0" -b’
  14.  
  15.   ClearErrors
  16.   ; this dumps the logfile to the detail window
  17.   FileOpen $R1 $R0 “r”
  18.   IfErrors FileOpenFailed
  19.   MoreMessages:
  20.     ClearErrors
  21.     FileRead $R1 $R0
  22.     IfErrors NoMoreMessages
  23.         StrCpy $R0 $R0 -2 ; remove newline
  24.         DetailPrint $R0
  25.     Goto MoreMessages
  26.   FileOpenFailed:
  27.   DetailPrint “Can’t read from $R0″
  28.   NoMoreMessages:
  29.   FileClose $R1
  30.   ClearErrors
  31.   ; sql script 파일 삭제
  32.   Delete “$INSTDIR\xx.sql”

via Execute SQL Server scripts

이 방법에는 SQL Server 가 설치되 있어야 하는 단점이 있다. 원격 연결 후 SQL script 를 실행하려면 어떻게 해야 할까?

이올린에 북마크하기(0) 이올린에 추천하기(0)
크리에이티브 커먼즈 라이선스
Creative Commons License
http://infoki.net/trackback/69 관련글 쓰기
댓글을 남겨주세요 부족한 부분 그리고 도움이 되었다면.