sql >> Databasteknik >  >> RDS >> Sqlserver

Kolumnnamn och/eller tabellnamn som parametrar

Du måste använda Dynamic SQL - du kan inte använda parametrar som tabell- eller kolumnnamn. Så något i stil med:

CREATE TABLE #temp (newcol nvarchar(500)) -- Use the type you're getting out of @TableName
DECLARE @TableName nchar(20) = 'MyTable'
DECLARE @ColumnName nchar(20) = 'MyColumn'

EXEC('INSERT INTO #temp SELECT [' + @ColumnName + '] FROM [' + @TableName + ']')

DECLARE UpdateList CURSOR FOR
SELECT newcol FROM #temp
OPEN UpdateList

Tänk på säkerhets- och prestandaproblem som är förknippade med dynamisk SQL - jag vet inte hur du kommer att fylla i variablerna här, och det kan finnas en viss fara med att göra detta.

EDIT:Lade till fullständig kod.



  1. Yii2:kan inte uppdatera kolumnvärdet med +1

  2. Summan av rader och gruppera genom att använda vältalig

  3. Piping mysqldump till mysql

  4. Lätt i ett nötskal