Apa itu mungkin?
DECLARE @vTableName varchar(50)
SET @vTableName = (SELECT TableName FROM qms_Types WHERE Id = 1)
SELECT * FROM @vTableName
Saya mengalami kesalahan ini:
Msg 1087, Level 16, Status 1, Baris 3 Harus mendeklarasikan variabel tabel "@vTableName".
Jawaban singkat: Tidak.
Jawaban panjang: Tidak. Gunakan SQL dinamis jika Anda harus melakukannya, tetapi jika Anda menyusun tabel Anda dengan cara di mana Anda tidak mengetahui nama tabel sebelumnya, mungkin ada baiknya Anda memikirkan kembali skema Anda.
Berikut ini adalah sumber yang bagus untuk mempelajari cara menggunakan SQL dinamis: Kutukan dan Berkah SQL Dinamis
jika Anda mencoba memilih dari tabel dengan nama tersebut, maka Anda dapat melakukan hal seperti ini:
DECLARE @vTableName varchar(50)
SET @vTableName = (SELECT TableName FROM qms_Types WHERE Id = 1)
EXECUTE('SELECT * FROM [' + @vTableName + ']')