Tôi có một tên trường cơ sở dữ liệu cuộc gọi Code
và tôi đang cố gắng để chọn nó sử dụng một tên biến như thế này dưới đây:động chọn cột trong truy vấn SQL
Declare @var1 = [Code]
(SELECT @var1
FROM [VoucherType]
WHERE [DeletedBy] IS NULL
AND [AutoID] = 1)
Rõ ràng, SQL sẽ giải thích @var1
như là một chuỗi và không lĩnh vực của cơ sở dữ liệu của tôi, làm thế nào tôi có thể làm điều đó theo cách như vậy @var1
được công nhận là tên trường [Code]
thay vì một chuỗi có thể mà không có bất kỳ lựa chọn hoặc báo cáo.
+1 cho sp_executesql, và một câu trả lời tốt. –
'+ @ var1 +' phải là '+ QUOTENAME (@ var1) +' để tránh các vấn đề về dấu cách và các ký tự đặc biệt khác có thể có trong tên cột. Nó cũng giúp ngăn ngừa các vấn đề tiêm có thể xảy ra. Ngoài ra, nếu bạn đang soạn danh sách được phân cách bằng dấu phẩy, mỗi tên cột riêng lẻ sẽ được chuyển qua QUOTENAME. – JamieSee