我有以下示例代码。结果是这些列作为VARCHAR类型。
declare @col1 varchar(80)='[Column1]'
declare @col2 varchar(80)='[Column2]'
SELECT @col1,@col2 FROM MyTable
答案 0 :(得分:2)
您必须使用动态SQL:
DECLARE @col1 VARCHAR(80) = 'Column1';
DECLARE @col2 VARCHAR(80) = 'Column2';
DECLARE @sql NVARCHAR(MAX);
SELECT @sql = 'SELECT ' + QUOTENAME(@col1) + ', ' + QUOTENAME(@col2) + ' FROM MyTable;';
EXEC sp_executesql @sql;
请注意,您必须确保列名是真正的列名。您还需要参数化查询以增加安全性。如果您遇到任何这些错误,可能会产生巨大的安全问题。
答案 1 :(得分:1)
尝试,
declare @query nvarchar(500) = 'select ' + @col1 + ', ' + @col1 + ' FROM MyTable'
exec @query