Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Nome delle colonne variabili di SQL Server?

Non puoi farlo perché SQL viene compilato prima che sappia qual è il valore di @a (suppongo che in realtà vorresti che @a fosse un parametro e non codificato come nel tuo esempio).

Invece puoi farlo:

declare @a as varchar; 
set @a='TEST' 

declare @sql nvarchar(max)
set @sql = 'select [' + replace(@a, '''', '''''') + '] from x'

exec sp_executesql @sql

Ma attenzione, questa è una vulnerabilità di sicurezza (attacchi sql-injection), quindi non dovrebbe essere fatto se non puoi fidarti o pulire bene @a.