Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Име на колона и/или име на таблица като параметри

Ще трябва да използвате Dynamic SQL - не можете да използвате параметри като имена на таблици или колони. Така че нещо като:

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

Моля, имайте предвид проблемите със сигурността и производителността, свързани с динамичния SQL - не знам как ще попълните променливите тук и може да има определена опасност при това.

РЕДАКТИРАНЕ:Добавен пълен код.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създаване на съставен външен ключ в SQL Server 2008

  2. @@ГРЕШКА и/или ОПИТ - ХВАНЕ

  3. SQL Server - Редът на колоните има ли значение?

  4. острови и пропуски tsql

  5. Как мога да редактирам стойности на INSERT в тригер на SQL Server?