问题:
今天一同事请教博主,他拼接了一个语句,select表格形式数据,然后使用@@rowcount获取到行数。
但他又有这样特别的需求:想只获取行数而不返回表格数据结果,因为是while循环,不想返回那么多次表格到客户端,而且后面又想复用这个返回表格形式数据的脚本字符串,不想在这个脚本字符串上改成count函数的拼接而影响后面复用脚本。
试图使用这个方法:把脚本在SQL Server Management Studio中打开,右击【查询选项】→【结果】→【网格】→勾选【执行后放弃结果】,结果确实是不返回table表格数据,但连要返回的那部分也都一并不返回了,连print都不显示了,因此这个方法不能满足这个特殊需求。
解决方案:
经博主编写demo脚本,使用sp_executesql返回拼接字符串里面的输出参数这个知识点,问题得到了解决。博主把这个demo拿出来分享给大家。
脚本:
/* 作者:zhang502219048 脚本来源:https://www.cnblogs.com/zhang502219048/p/11317762.html 说明:本脚本用于示例如何使用sp_executesql返回拼接字符串里面的输出参数 */ --@sql_table:源sql,返回表数据 declare @sql_table nvarchar(100) = ' select 1 ID union select 3 ' --@sql_count:组装count统计sql declare @sql_count nvarchar(100) = ' select @iCount = count(*) from (' + @sql_table + ') a ' --@iCount:返回输出参数 declare @iCount int exec sp_executesql @sql_count, N'@iCount int out', @iCount out --为了拼接返回参数,用sp_executesql --显示@iCount print(@iCount) --显示原来脚本 print(@sql_table) --显示组装count统计sql print(@sql_count)
脚本运行结果:
作者声明:
欢迎转载,但转载请务必注明博文来源:https://www.cnblogs.com/zhang502219048/p/11317762.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫