如何执行用字符串组成的SQL语句
2009-11-07 19:58
204 查看
在存储过程中经常需要执行程序组成的SQL语句,可以使用exec(@sql),
也可以使用exec sp_executesql @sql。但使用sp_executesql要优于exec,建议使用 sp_executesql 而不要使用 EXECUTE 语句执行字符串。支持参数替换不仅使 sp_executesql 比 EXECUTE 更通用,而且 还使 sp_executesql 更有效,因为它生成的执行计划更有可能被 SQL Server 重新使用。
但如果使用sp_executesql ,全局变量比如@@rowcount将没有正确值,而exec有,如果想返回该SQL中某一字段的值可使用他的参数,例如:
@sql='select @id=id from table'
exec sp_executesql @sql N'@id int out ',@id out
print @id
也可以使用exec sp_executesql @sql。但使用sp_executesql要优于exec,建议使用 sp_executesql 而不要使用 EXECUTE 语句执行字符串。支持参数替换不仅使 sp_executesql 比 EXECUTE 更通用,而且 还使 sp_executesql 更有效,因为它生成的执行计划更有可能被 SQL Server 重新使用。
但如果使用sp_executesql ,全局变量比如@@rowcount将没有正确值,而exec有,如果想返回该SQL中某一字段的值可使用他的参数,例如:
@sql='select @id=id from table'
exec sp_executesql @sql N'@id int out ',@id out
print @id
相关文章推荐
- 如何在查询分析器中显示sql语句的精确执行时间(精确到ms)?_
- C#中如何连接数据库并执行SQL语句
- 如何得到执行最耗时的前N条T-SQL语句--【叶子】
- kettle job如何利用java的反射机制获取执行的sql语句
- 如何在存储执行中,查询某条sql语句的执行计划。
- 对all_tables表的操作, 执行 字符串sql 语句: EXECUTE IMMEDIATE
- SQL Server如何查看SQL语句的执行时间 .
- 如何让SQL语句的执行计划稳定不变?
- C#中 如何执行带GO的sql 语句
- 如何检测mysql 数据库执行了哪些sql语句 ecshop如何添加商品属性 ecshop 商品属性批量采集入库
- docmd.runsql 语句执行的操作查询如何回滚?
- Oracle中存储过程执行大的Sql语句时如何查看sql是否正确
- 如何在mybatis中一个insert,delete,update中执行多条SQL语句
- 如何用C#程序直接执行.sql文件里的SQL语句
- Access学习要点2----Access2010中如何运行SQL执行SQL语句
- sql语句,如何截取指定字段某一个字符出现后的后面的字符串吗?
- Access2007中如何运行SQL执行SQl语句
- 在SQL 2008中总是出现问题:执行Transact-SQL语句或批处理时发生异常。如何解决?
- SQL语句在数据库中是如何执行的