用execute 与 sp_executesql 比较。 我的理解是: 其实用 exec 只要再多一句比如:set @str='***'+@tmp 就可以替代 sp_executesql 输入变量@tmp了 但是输出变量怎么处理呢?好象只能用sp_executesql了 还有如何通过sp_executesql 来构造临时表呢? 比如一个临时表的表的结构是动态变化 ...
set @sql='select @cnt = count(*) from typetemp1' exec sp_executesql @sql,N'@cnt int out',@cnt out select @cnt 提示:过程需要类型为 'ntext/nchar/nvarchar' 的参数 '@statement'。