Nama jadual dinamik dalam SQL
Apabila cuba mengisi nama jadual secara dinamik menggunakan pembolehubah (seperti @nama jadual), anda mungkin menghadapi ralat yang menyatakan pembolehubah jadual mesti diisytiharkan. Ini kerana pertanyaan statik (termasuk nama jadual dan lajur) mesti kekal statik.
Untuk menyelesaikan masalah ini, pertimbangkan untuk menggunakan teknologi SQL dinamik. Ini melibatkan penjanaan pernyataan SQL lengkap secara dinamik dan menggunakan sp_executesql untuk melaksanakannya. Contohnya:
<code class="language-sql">declare @schema sysname; declare @table sysname; declare @query nvarchar(max); set @schema = 'dbo'; set @table = 'ACTY'; set @query = ' SELECT * FROM [DB_ONE].' + QUOTENAME(@schema) + '.' + QUOTENAME(@table) + ' EXCEPT SELECT * FROM [DB_TWO].' + QUOTENAME(@schema) + '.' + QUOTENAME(@table); EXEC sp_executesql @query;</code>
Dalam contoh ini, nama jadual digantikan dengan ruang letak dinamik dan pernyataan SQL yang lengkap dijana. sp_executesql kemudian melaksanakan pertanyaan dinamik ini, menyelesaikan nama jadual pada masa berjalan.
Menggunakan SQL dinamik memberikan fleksibiliti tetapi memerlukan perhatian terhadap perincian dan langkah penyelenggaraan yang sesuai. Untuk panduan komprehensif, lihat "Kebaikan dan Keburukan SQL Dinamik."
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Nama Jadual Dinamik dalam Pertanyaan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!