nnpc.net
当前位置:首页 >> 关于mssql中EXEC sp_ExECutEsql的一些疑惑! >>

关于mssql中EXEC sp_ExECutEsql的一些疑惑!

sp_executesql 支持对 transact-sql 字符串中指定的任何参数的参数值进行替换,但是 execute 语句不支持.因此,由 sp_executesql 生成的 transact-sql 字符串比由 execute 语句所生成的更相似.sql server 查询优化器可能将来自 sp_executesql 的 transact-sql 语句与以前所执行的语句的执行计划相匹配,以节约编译新的执行计划的开销.使用 execute 语句时,必须将所有参数值转换为字符或 unicode 并使其成为 transact-sql 字符串的一部分 希望你能理解这一段,我是不太明白

这是执行动态sql的exec sp_executesql N'SELECT LA001, LA014, LA005, LA011, LA013, LA021 FROM cgjterp..INVLA INVLAWHERE LA001=@P1 AND LA009=@P2 ORDER BY LA001, LA009 ' 到这里是定义一个动态sqlN'@P1 varchar(20),@P2 varchar(10)' 是对动态sql里用的变量申明'301110101001', '01' 给相应的变量赋值希望对你有帮助

sp_executesql 支持对 Transact-SQL 字符串中指定的任何参数的参数值进行替换,但是 EXECUTE 语句不支持.因此,由 sp_executesql 生成的 Transact-SQL 字符串比由 EXECUTE 语句所生成的更相似.SQL Server 查询优化器可能将来自 sp_executesql 的 Transact-SQL 语句与以前所执行的语句的执行计划相匹配,以节约编译新的执行计划的开销.使用 EXECUTE 语句时,必须将所有参数值转换为字符或 Unicode 并使其成为 Transact-SQL 字符串的一部分 希望你能理解这一段,我是不太明白

set @sqlstr='select @name = max(title) from [table]'exec sp_executesql @sqlstr, n'@name varchar(10) output', @name output;

你想要的是什么东东 exec sp_executesql 'a' 这个a不要加引号!

定义的@ename 是输出类型;

用EXECUTE可以执行动态SQLExec ('Select ..')用sp_executesql也可以,但是它有个返回代码值0(成功)或 1(失败)在需要判断操作结果的情况下,使用sp_executesql如果不需要的话,使用Exec就可以了sp_executesql本身就是一个系统存储过程

你的content是想返回查询的结果集??你都没对其进行赋值,CONTENT肯定返回的是空

执行动态SQL ,具体可以查看sp_executesql 的帮助

MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有.还有一

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.nnpc.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com