Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Nama kolom dan/atau nama tabel sebagai parameter

Anda harus menggunakan SQL Dinamis - Anda tidak dapat menggunakan parameter sebagai nama tabel atau kolom. Jadi sesuatu seperti:

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

Harap diingat masalah keamanan dan kinerja yang terkait dengan SQL dinamis - Saya tidak tahu bagaimana Anda akan mengisi variabel, di sini, dan mungkin ada beberapa bahaya yang pasti dalam melakukan hal ini.

EDIT:Menambahkan kode lengkap.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara membuat file teks menggunakan skrip sql dengan teks |

  2. tidak dapat memberikan nilai sebagai float

  3. Perbedaan Antara sys.objects, sys.system_objects, dan sys.all_objects di SQL Server

  4. Bagaimana cara memeriksa status replikasi SQL melalui T-SQL?

  5. Menghubungkan Genero ke SQL Server