2012-01-25 4 views
1

함께 SQLCMD 호출에 전달 된 PARMS을 받아 SQLCMD를 통해 실행됩니다 스크립트 파일을 얻을 수있는 방법이 있나요 ..SQL 스크립트 명령 줄 인수

즉 ..

SQLCMD (연결을 가정 OK입니다.) -V "1/25/2012"-i "ScriptFile.sql"

ScriptFile.sql의 구조는 어떻게됩니까? 다른 절차와 똑같은 것으로 시작하겠습니까 ..?

기본적으로 SQL 명령으로 매개 변수가있는 텍스트 파일 스크립트를 호출하려고합니다. 지금까지 나는 이것에 대한 MSDN 기사를 찾을 수 없었습니다.

답변

6

OK ...

을 사용하는 SQL 스크립트 파일 변수는 다음과 같은 변수를 사용합니다.

업데이트 TableName을 설정합니다. ColumnValue = $ (Param)

어떤 선언도 없다 --Notice 및 매개 변수의 형식은 명령 행이 거의 같은 모양

... 변수로 대신 @Param의
$ (파람)를 사용합니다.

SQLCMD -S 서버 이름 -d 데이터베이스 이름 -v 파람 = " '파람'"-i "ScriptFile.sql"

: 어떤 이유로, 전달 된 값은 큰 따옴표 안에 작은 따옴표에있을과 같이 필요

ScriptFile 이름 주위에 Double 따옴표를 사용하십시오 (Single within Double).

+0

'Set ColumnValue = '$ (Param)''을 스크립트에 넣은 다음 작은 따옴표없이 값을 전달합니까? – CoderDennis

1

사용 :

sqlcmd -E -S <Your Server> -v test="Test String" -i file.sql 

file.sql : 사람이 관심이 있다면,이 같이 간다 ..

SELECT @test 
+0

작동합니다! 감사!! –

+0

철회 .. 그것이 작동하는 것처럼 보였다. 내가 그것을 끝까지 쫓아 갈 때까지. parm을 통과하지 못했다. 나는 모든 것을 포함 할 수있다. 프로파일 러를 보았을 때, SQL은 실행되고 있지만 Parm이 가지고있는 것을 볼 수있다. 값 없음 .. 널 값으로 DB를 갱신 중입니다 .. –

1

http://msdn.microsoft.com/en-us/library/ms188714.aspx에 따르면 -v를 사용하여 스크립팅 변수를 설정할 수 있습니다. 이것은 나를 위해 일했고 다른 해결책은 여기에 없었습니다. prune.sql

: 표는 어디에서 삭제 열 = $ (파람)

와 도스 cmd를 또는 PowerShell의 : SQLCMD는 "내 서버"-S -v 파람 = 100 -i 치다 .sql

따옴표는 값이 공백 인 경우에만 필요합니다. 희망이 도움이됩니다.