SQLCMD 変数の概要
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Microsoft Fabric SQL Database
SQLCMD 変数は SQL プロジェクトで使用され、SQL オブジェクトとスクリプトで動的に置換可能なトークンを作成します。 これらの変数の値は配置時に設定され、SQL プロジェクトの値を動的に設定するために使用できます。 SQLCMD 変数の値は、発行アクションで設定するか、発行プロファイルを介して設定できます。
SQL プロジェクト ファイルのサンプルと構文
SQLCMD 変数は、<ItemGroup>
項目の下の .sqlproj
ファイルで定義されます。 この例では、変数 EnvironmentName
は testing
の既定値で定義されています。
...
<ItemGroup>
<SqlCmdVariable Include="EnvironmentName">
<DefaultValue>testing</DefaultValue>
<Value>$(SqlCmdVar__1)</Value>
</SqlCmdVariable>
</ItemGroup>
</Project>
DefaultValue
要素は省略可能です。 既定値を指定すると、SQL プロジェクト用にグラフィック ツールの発行ダイアログに読み込むときのみに使用されます。 発行プロファイルで指定された値を使用せずに、既定値は .dacpac
ファイルとコマンド ライン 展開にコンパイルされません。そうでない場合、 値を指定する /v
オプションが SQLCMD 変数に空の値になります。
SQL オブジェクトで SQLCMD 変数の使用
変数名を $(variableName)
構文でラップすることにより、SQLCMD 変数は SQL オブジェクトとスクリプトで使用できます。 たとえば、次の SQL スクリプトは $(EnvironmentName)
変数を使用してスクリプト動作を制御します。
IF '$(EnvironmentName)' = 'testing'
BEGIN
-- do something
END
発行アクションに SQLCMD 変数の使用
SqlPackage コマンド ライン ツールの /v
オプションを使用して、SQLCMD 変数は展開時に設定できます。 たとえば、次のコマンドは EnvironmentName
変数を production
に設定します。
sqlpackage /Action:Publish /SourceFile:AdventureWorks.dacpac /TargetConnectionString:{connection_string_here} /v:EnvironmentName=production
SQLCMD 変数の追加と使用
Visual Studio の SQL プロジェクトに SQLCMD 変数を追加するには、ソリューション エクスプローラーでプロジェクトを右クリックし、[プロパティ] を選択します。 プロパティ ウィンドウの [SQLCMD 変数] タブで、変数名と必要に応じて既定値を指定します。
変数が定義されたら、変数名を $(variableName)
構文でラップすることにより、変数を SQL スクリプトに使用できます。
Visual Studio でプロジェクトを発行すると、SQLCMD 変数は発行ダイアログで設定されます。 [値の読み込み] ボタンを使用し、SQL プロジェクトからダイアログに既定値を読み込みます。
Visual Studio の SQL プロジェクトに SQLCMD 変数を追加するには、ソリューション エクスプローラーでプロジェクトを右クリックし、[プロパティ] を選択します。 プロパティ ウィンドウの [SQLCMD 変数] セクションで、変数名と (必要に応じて) 既定値を指定します。
変数が定義されたら、変数名を $(variableName)
構文でラップすることにより、変数を SQL スクリプトに使用できます。
Visual Studio でプロジェクトを発行すると、SQLCMD 変数は発行ダイアログで設定されます。 [値の読み込み] ボタンを使用し、SQL プロジェクトからダイアログに既定値を読み込みます。
SQL データベース プロジェクト 拡張機能の SQL プロジェクトに SQLCMD 変数を追加するには、[データベース プロジェクト] ビューでプロジェクトの下にある [SQLCMD 変数] ノードを右クリックし、[SQLCMD 変数の追加] を選択します。 変数名を指定し、必要に応じて既定値を指定します。
変数が定義されたら、変数名を $(variableName)
構文でラップすることにより、変数を SQL スクリプトに使用できます。
SQL データベース プロジェクトの拡張機能からプロジェクトを発行すると、SQLCMD 変数の値は既定値から自動的に読み込まれます。 発行プロセス中に値を変更するように求められると、代替値を指定できます。
SQLCMD 変数を SQL プロジェクトに追加するには、各変数の <SqlCmdVariable>
項目を含む .sqlproj
ファイルに <ItemGroup>
項目を追加します。 <SqlCmdVariable>
項目には、変数名、既定値、配置時に設定できる値が含まれます。
<ItemGroup>
<SqlCmdVariable Include="EnvironmentName">
<DefaultValue>testing</DefaultValue>
<Value>$(SqlCmdVar__1)</Value>
</SqlCmdVariable>
</ItemGroup>
変数が定義されたら、変数名を $(variableName)
構文でラップすることにより、変数を SQL スクリプトに使用できます。
コマンド ラインからプロジェクトを展開すると、SqlPackage コマンド ライン ツールの /v
オプションを使用して SQLCMD 変数を設定できます。
次に例を示します。
SqlPackage /Action:Publish /SourceFile:AdventureWorks.dacpac /TargetConnectionString:{connection_string_here} /v:EnvironmentName=production