经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MS SQL Server » 查看文章
sql server使用sp_executesql返回拼接字符串里面的输出参数
来源:cnblogs  作者:张工502219048  时间:2019/8/8 8:48:56  对本文有异议

问题:
  今天一同事请教博主,他拼接了一个语句,select表格形式数据,然后使用@@rowcount获取到行数。
  但他又有这样特别的需求:想只获取行数而不返回表格数据结果,因为是while循环,不想返回那么多次表格到客户端,而且后面又想复用这个返回表格形式数据的脚本字符串,不想在这个脚本字符串上改成count函数的拼接而影响后面复用脚本。
  试图使用这个方法:把脚本在SQL Server Management Studio中打开,右击【查询选项】→【结果】→【网格】→勾选【执行后放弃结果】,结果确实是不返回table表格数据,但连要返回的那部分也都一并不返回了,连print都不显示了,因此这个方法不能满足这个特殊需求。

解决方案:
  经博主编写demo脚本,使用sp_executesql返回拼接字符串里面的输出参数这个知识点,问题得到了解决。博主把这个demo拿出来分享给大家。

脚本:

  1. /*
  2. 作者:zhang502219048
  3. 脚本来源:https://www.cnblogs.com/zhang502219048/p/11317762.html
  4. 说明:本脚本用于示例如何使用sp_executesql返回拼接字符串里面的输出参数
  5. */
  6. --@sql_table:源sql,返回表数据
  7. declare @sql_table nvarchar(100) = '
  8. select 1 ID
  9. union
  10. select 3
  11. '
  12. --@sql_count:组装count统计sql
  13. declare @sql_count nvarchar(100) = '
  14. select @iCount = count(*)
  15. from
  16. (' + @sql_table + ') a
  17. '
  18. --@iCount:返回输出参数
  19. declare @iCount int
  20. exec sp_executesql @sql_count, N'@iCount int out', @iCount out --为了拼接返回参数,用sp_executesql
  21. --显示@iCount
  22. print(@iCount)
  23. --显示原来脚本
  24. print(@sql_table)
  25. --显示组装count统计sql
  26. print(@sql_count)

脚本运行结果:

作者声明:
欢迎转载,但转载请务必注明博文来源:https://www.cnblogs.com/zhang502219048/p/11317762.html

原文链接:http://www.cnblogs.com/zhang502219048/p/11317762.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号