Cara Berkongsi Pembolehubah Merentas Pertanyaan dalam SQL Server
Dalam SQL Server, tiada konsep pembolehubah global seperti itu. Walau bagaimanapun, jika anda perlu menggunakan semula nilai tertentu merentas berbilang pertanyaan atau pangkalan data, terdapat beberapa pendekatan yang boleh anda pertimbangkan:
Menggunakan Pembolehubah Skalar
Sementara anda boleh mengisytiharkan pembolehubah skalar dalam pertanyaan individu, pembolehubah ini tidak boleh diakses di luar skopnya. Untuk menggunakan pembolehubah yang sama merentas berbilang pertanyaan, anda boleh mengisytiharkannya pada permulaan skrip anda:
DECLARE @GLOBAL_VAR_1 INT = Value_1 DECLARE @GLOBAL_VAR_2 INT = Value_2
Walau bagaimanapun, pendekatan ini boleh membawa kepada ralat jika anda cuba menggunakan pembolehubah dalam konteks pangkalan data yang berbeza.
Menggunakan Pembolehubah SQLCMD
mod SQLMD, tersedia dalam SQL Server Management Studio (SSMS), membolehkan anda menentukan pembolehubah yang diskop kepada kumpulan atau skrip semasa. Pembolehubah ini boleh diakses menggunakan sintaks:
$(variable_name)
Untuk mengisytiharkan pembolehubah SQLCMD:
:setvar variable_name value
Contohnya:
:setvar GLOBAL_VAR_1 10
Anda kemudian boleh menggunakan ini pembolehubah dalam pertanyaan seterusnya:
SELECT * FROM TABLE WHERE COL_1 = $(GLOBAL_VAR_1)
Perhatikan bahawa pembolehubah SQLCMD hanya kekal dalam skrip yang sama atau kelompok.
Menggunakan Pembolehubah Jadual
Pilihan lain ialah mencipta pembolehubah jadual dan memasukkan nilai yang dikehendaki ke dalamnya. Pembolehubah jadual kemudiannya boleh dicantumkan atau ditanya merentas berbilang kelompok atau pangkalan data.
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
Pendekatan ini memberikan lebih fleksibiliti dan boleh digunakan dalam pelbagai senario yang memerlukan perkongsian pembolehubah.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Berkongsi Pembolehubah Merentas Berbilang Pertanyaan Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!