Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tên cột và / hoặc tên bảng dưới dạng tham số

Bạn sẽ phải sử dụng SQL động - bạn không thể sử dụng các tham số làm tên bảng hoặc cột. Vì vậy, một cái gì đó như:

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

Hãy lưu ý các vấn đề về bảo mật và hiệu suất liên quan đến SQL động - Tôi không biết bạn sẽ điền các biến như thế nào, tại đây và có thể có một số nguy hiểm nhất định khi thực hiện điều này.

CHỈNH SỬA:Đã thêm mã đầy đủ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách áp dụng Mệnh đề Có với Nhóm bằng trong Truy vấn Chọn - Hướng dẫn SQL Server / TSQL Phần 131

  2. SQL Server - tên người dùng hiện tại

  3. Loại bỏ các ràng buộc không tên

  4. công thức cho cột được tính dựa trên cột của bảng khác nhau

  5. Khôi phục cơ sở dữ liệu SQL Server - không thành công:38 (Đã đến cuối tệp.)