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

SQL động (chuyển tên bảng làm tham số)

Vâng, trước hết bạn đã bỏ qua dấu '+' khỏi chuỗi của mình. Cách làm này không lý tưởng lắm, nhưng bạn có thể làm được

DECLARE @SQL varchar(250)
SELECT @SQL = 'SELECT * FROM ' + QuoteName(@Alias)
Exec(@SQL)

Tuy nhiên, tôi thực sự khuyên bạn nên suy nghĩ lại cách bạn làm điều này. Việc tạo SQL động thường dẫn đến lỗ hổng SQL Injection cũng như làm cho SQL Server (và các DB khác) khó tìm ra cách tốt nhất để xử lý truy vấn của bạn. Nếu bạn có một thủ tục được lưu trữ có thể trả về bất kỳ bảng nào, bạn thực sự hầu như không nhận được lợi ích nào từ việc nó là một thủ tục được lưu trữ ngay từ đầu vì nó sẽ không thể làm được gì nhiều theo cách tối ưu hóa và bạn phần lớn cũng tính toán các lợi ích bảo mật.



  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 (TSQL) - Có thể thực thi các câu lệnh song song không?

  2. Sự khác biệt giữa sys.parameters, sys.system_parameters và sys.all_parameters trong SQL Server

  3. Duy trì mối quan hệ cha-con khi sao chép dữ liệu phân cấp

  4. SQL Server v.Next:Hiệu suất STRING_AGG ()

  5. SQL Server:Tìm ra giá trị mặc định của một cột bằng một truy vấn