sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server variabel kolumner namn?

Du kan inte göra det eftersom SQL kompileras innan den vet vad värdet av @a är (jag antar att du i verkligheten skulle vilja att @a ska vara någon parameter och inte hårdkodad som i ditt exempel).

Istället kan du göra så här:

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

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

exec sp_executesql @sql

Men var försiktig, detta är en säkerhetsrisk (sql-injection attacker) så bör inte göras om du inte kan lita på eller väl rensa @a.



  1. Hur LOG() fungerar i MariaDB

  2. Är det nödvändigt att kassera DbCommand efter användning?

  3. Hur man aktiverar långsam frågeloggning i PostgreSQL

  4. Felaktig syntax nära nyckelordet 'med'...föregående påstående måste avslutas med semikolon