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

Navn på SQL Server variabel kolonner?

Du kan ikke gøre det, fordi SQL er kompileret, før det ved, hvad værdien af ​​@a er (jeg går ud fra, at du i virkeligheden ønsker, at @a skal være en parameter og ikke hårdkodet som i dit eksempel).

I stedet kan du gøre dette:

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

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

exec sp_executesql @sql

Men vær forsigtig, dette er en sikkerhedssårbarhed (sql-injection-angreb), så det bør ikke gøres, hvis du ikke kan stole på eller godt rense @a.



  1. Påkrævet for at deltage i 2 borde med deres FK'er i et 3. bord

  2. Jeg kan ikke indstille flere billeder i gittervisning?

  3. Sådan fungerer TRUNCATE() i MariaDB

  4. Hvordan man behandler MAX() af en tom tabel som 0 i stedet for NULL