【发布时间】:2014-11-08 20:49:30
【问题描述】:
我尝试了以下方法:
declare @var2 nvarchar(30)
declare @qsql nvarchar(100)
set @var2 = N'iddelegat'
exec ('select max('+ @var2 + ') as IDexec from delegat');
set @qsql = 'select max(@varsp) as IDspexec from delegat';
exec sp_executesql @qsql, N'@varsp nvarchar(30)', @var2;
结果:
IDexec IDspexec
-----------------------
500038 iddelegat
我不明白为什么sp_executesql 不会返回与EXECUTE 相同的结果。正确的返回值仅在EXECUTE 语句中。 sp_executesql 似乎没有评估字符串 'iddelegat' 以返回该列。
【问题讨论】:
标签: sql sql-server tsql execute sp-executesql