9

SQLCMDを使用してコマンドラインで変数が定義されているかどうかを確認する方法はありますか?

これが私のコマンドラインです:

sqlcmd -vDB = "EduC_E100" -i "Z:\ SQL Common \ Admin \ ProdToTest_DB.sql"

ProdToTest_DB.sql内で、ある種の条件付きIFを設定して、変数が存在しないかどうかを確認し、存在しない場合は定義したいと思います。

$(DB)でない場合
:setvar DB "C_Q200"
終わり

コマンドラインとSSMS内の両方からスクリプトを実行できるようにしたい。

前もって感謝します。

4

2 に答える 2

16

私は、次のルーチンのバリアントを多数のコマンドライン変数依存スクリプトで使用しました。ここで、「DataPath」は必須の値です。

DECLARE @Test_SQLCMD  varchar(100)

--  Confirm that SQLCMD values have been set (assume that if 1 is, all are)
SET @Test_SQLCMD = '$(DataPath)'

IF reverse(@Test_SQLCMD) = ')htaPataD($'
    --  SQLCMD variables have not been set, crash and burn!
    RAISERROR('This script must be called with the required SQLCMD variables!', 20, 1) with log
于 2010-10-12T13:48:51.220 に答える
0

trycatchステートメントを使用して目的を達成できます。tryで変数の1つにアクセスするだけで、エラーが発生する場合は、catchでそれらを定義します。

于 2014-05-01T18:46:09.417 に答える