sql >> Databáze >  >> RDS >> Sqlserver

Název-sloupce a/nebo název-tabulky jako parametry

Budete muset použít dynamické SQL – nemůžete použít parametry jako názvy tabulek nebo sloupců. Takže něco jako:

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

Mějte prosím na paměti problémy se zabezpečením a výkonem spojené s dynamickým SQL – nevím, jak zde budete naplňovat proměnné, a v tomto případě může existovat určité nebezpečí.

EDIT:Přidán úplný kód.



  1. změna omezení DEFAULT ve sloupci SQL

  2. Výchozí chování automatického potvrzení připojení JDBC

  3. odstranit vše z tabulky

  4. Jak nainstalovat MySQL 8.0 na CentOS 8 / RHEL 8