注意,是标准SQL语句中。。。
业务问题描述如下,或者看大家能否提供变通方案?
Create table MyTable(
f1 varchar(100);
f2 varchar(100);
);
insert into MyTable(f1,f2) values('value1','value2');
......
Create procedure MyProc(IN col_name varchar(32))
MODIFIES SQL DATA DYNAMIC RESULT SETS 1 BEGIN ATOMIC
DECLARE result CURSOR FOR select col_name from MyTable;
OPEN result;
END
Call MyProc('f1');
上述调用后,本想得到列f1的值,但是却得到了字符串常量'f1'。
------解决思路----------------------
declare @fieldname varchar(100)
set @fieldname='f1'
declare @sql nvarchar(1000)
set @sql='select '+@fieldname+' from MyTable'
exec sp_executesql @sql
------解决思路----------------------
支持。
SQL-92
12)Support for dynamic execution of SQL language,
------解决思路----------------------
支持的
EXEC 存储过程 参数,参数