我尝试了以下方法:
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' 以返回该列。