2012-01-25 25 views
1

SQLCMD呼び出しで渡されたPARMSを受け入れるようにSQLCMD経由で実行されるスクリプトファイルを取得する方法があります。..SQLスクリプトのコマンドライン引数

すなわち..

SQLCMD(接続を前提とし)-V "1/25/2012" -i "ScriptFile.sql"

ScriptFile.sqlの構造はどのようになりますか?それは他の手続きと同じように始まるでしょうか?

基本的に私はSQLコマンドとしてパラメータを持つテキストファイルスクリプトを呼び出そうとしています。これまで私はこれに関するMSDNの記事を見つけることができませんでした。

答えて

6

OK ...

使用しているSQLスクリプトファイル変数は次のような変数を使用します。

更新TableNameを設定します。ColumnValue = $(Param)

には、DECLAREありません--Notice、およびパラメータの形式は、コマンドラインがほぼ同じに見えます

...変数としての代わり@Paramの
$(パラメータ)を使用しています。

SQLCMD -Sサーバー名-dデータベース名-vのParam =「『のParam』」-i「ScriptFile.sql」

:何らかの理由で、渡された値は、二重引用符内の単一引用符で囲むようにようにする必要があります

ScriptFile名の前後に二重引用符を使用して、Double内のSingleをパラメータとして使用します。

+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が実行されているが、値はありません..ヌル値でDBを更新しています.. –

1

http://msdn.microsoft.com/en-us/library/ms188714.aspxによれば、-vを使用してスクリプト変数を設定できます。これは私のために働いた、そして他の解決策はここでdidntした。

prune.sql: は、カラム= $(パラメータ)

とドスのCMDまたはPowerShellで表から削除します。 は-S "マイサーバー" -vのParam = 100 -iプルーンをSQLCMD .sql

引用符は、設定されている値にスペースが含まれている場合にのみ必要なように見えます。お役に立てれば。

関連する問題