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

Tên cột biến SQL Server?

Bạn không thể làm điều đó vì SQL được biên dịch trước khi nó biết giá trị của @a là gì (tôi giả sử trong thực tế, bạn muốn @a là một số tham số chứ không phải được mã hóa cứng như trong ví dụ của bạn).

Thay vào đó, bạn có thể làm điều này:

declare @a as varchar; 
set @a='TEST' 

declare @sql nvarchar(max)
set @sql = 'select [' + replace(@a, '''', '''''') + '] from x'

exec sp_executesql @sql

Nhưng hãy cẩn thận, đây là một lỗ hổng bảo mật (các cuộc tấn công sql-injection), vì vậy bạn không nên thực hiện nếu bạn không thể tin tưởng hoặc dọn dẹp tốt @a.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. VMware CPU Hot Plug vNUMA Hiệu ứng trên SQL Server

  2. SQL Server - Khám phá nội bộ của sp_spaceused

  3. SqlDateTime.MinValue! =DateTime.MinValue, tại sao?

  4. Kiểm tra xem một đối tượng là một bảng, dạng xem hoặc thủ tục được lưu trữ trong SQL Server bằng cách sử dụng hàm OBJECTPROPERTY ()

  5. 2 cách tạo cơ sở dữ liệu trên máy chủ được liên kết bằng T-SQL