Ho un campo di database nome chiamata Code
e sto cercando di selezionarlo utilizzando un nome di variabile come questo qui sotto:dinamicamente scegliere colonna nella query SQL
Declare @var1 = [Code]
(SELECT @var1
FROM [VoucherType]
WHERE [DeletedBy] IS NULL
AND [AutoID] = 1)
A quanto pare, SQL interpreterà @var1
come una stringa e non il campo del mio database, come posso farlo in modo tale @var1
è riconosciuto come il nome del campo [Code]
invece di una stringa possibilmente senza alcuna istruzione select o if.
+1 per sp_executesql e una buona risposta. –
'+ @ var1 +' dovrebbe essere '+ QUOTENAME (@ var1) +' per evitare problemi con spazi e altri possibili caratteri speciali nei nomi delle colonne. Inoltre, aiuta a prevenire possibili problemi di iniezione. Inoltre, se stai componendo un elenco separato da virgole, ogni singolo nome di colonna deve essere passato attraverso QUOTENAME. – JamieSee