T-SQL EXEC versus sp_exec
问题 I tried the following: 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; And the result: IDexec IDspexec ----------------------- 500038 iddelegat I could not understand why sp_executesql does not return the same result as EXECUTE . The right returned values are only in EXECUTE statement. It