Nếu bạn đang cố gắng chỉ định tên cột động, bạn có thể xem cách thực thi sql động. Tuy nhiên, bạn nên đảm bảo đọc về những nguy hiểm của phương pháp này trước:
http://www.sommarskog.se/dynamic_sql.html
Từ trang đó, có một mẫu hiển thị chỉ định động tên bảng - bạn có thể thay đổi nó để nó chỉ định động tên cột thay thế:
CREATE PROCEDURE general_select @tblname nvarchar(128),
@key varchar(10),
@debug bit = 0 AS
DECLARE @sql nvarchar(4000)
SET @sql = 'SELECT col1, col2, col3
FROM dbo.' + quotename(@tblname) + '
WHERE keycol = @key'
IF @debug = 1 PRINT @sql
EXEC sp_executesql @sql, N'@key varchar(10)', @key = @key
Vì vậy, ví dụ:nếu bạn có một bảng 'MyTable' với các cột có tên 'x', 'y' và 'z', nó có thể giống như sau:
DECLARE @columnName nvarchar(128)
DECLARE @sql nvarchar(4000)
set @columnName = 'z'
SET @sql = 'SELECT x, y, ' + @columnName + ' from MyTable'
EXEC sp_executesql @sql, N'@columnName varchar(128)', @columnName = @columnName