SQL Server のクエリ間で変数を共有する方法
SQL Server には、グローバル変数自体の概念がありません。ただし、複数のクエリまたはデータベース間で特定の値を再利用する必要がある場合は、いくつかのアプローチを検討できます。
スカラー変数の使用
スカラー変数を宣言することもできます。個々のクエリ内では、これらの変数はスコープ外ではアクセスできません。複数のクエリで同じ変数を使用するには、スクリプトの先頭で宣言できます:
DECLARE @GLOBAL_VAR_1 INT = Value_1 DECLARE @GLOBAL_VAR_2 INT = Value_2
ただし、この方法では、異なるデータベース コンテキストで変数を使用しようとするとエラーが発生する可能性があります。
SQLCMD 変数の使用
SQL Server で使用可能な SQLCMD モードManagement Studio (SSMS) を使用すると、現在のバッチまたはスクリプトをスコープとする変数を定義できます。これらの変数には、次の構文を使用してアクセスできます。
$(variable_name)
SQLCMD 変数を宣言するには:
:setvar variable_name value
例:
:setvar GLOBAL_VAR_1 10
これを使用できます。後続のクエリの変数:
SELECT * FROM TABLE WHERE COL_1 = $(GLOBAL_VAR_1)
SQLCMD 変数のみであることに注意してください同じスクリプトまたはバッチ内で永続化します。
テーブル変数の使用
別のオプションは、テーブル変数を作成し、そこに必要な値を挿入することです。その後、テーブル変数を複数のバッチまたはデータベース間で結合したりクエリしたりできます。
DECLARE @GlobalVars TABLE ( Name VARCHAR(50), Value INT ) INSERT INTO @GlobalVars (Name, Value) VALUES ('GLOBAL_VAR_1', 10), ('GLOBAL_VAR_2', 20) SELECT * FROM TABLE JOIN @GlobalVars ON TABLE.VarName = @GlobalVars.Name
このアプローチにより柔軟性が高まり、変数の共有が必要なさまざまなシナリオで使用できます。
以上が複数の SQL Server クエリ間で変数を共有するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。