问题:
  今天一同事请教博主,他拼接了一个语句,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

sql server使用sp_executesql返回拼接字符串里面的输出参数的更多相关文章

  1. SQL Server数据库存储过程中拼接字符串注意的问题

    在SQL Server数据库中书写复杂的存储过程时,一般的做法是拼接字符串,最后使用EXEC sp_executesql '拼接的字符串' 查询出结果. 先看一段代码: -- ============ ...

  2. SQL Server GROUP BY 后 拼接 字符串

    原文地址:https://blog.csdn.net/u010673842/article/details/79637618 select ID, ,,'') from class a group b ...

  3. SQL Server日期时间格式转换字符串详解 (详询请加qq:2085920154)

    在SQL Server数据库中,SQL Server日期时间格式转换字符串可以改变SQL Server日期和时间的格式,是每个SQL数据库用户都应该掌握的.本文我们主要就介绍一下SQL Server日 ...

  4. SQL Server日期时间格式转换字符串

    在SQL Server数据库中,SQL Server日期时间格式转换字符串可以改变SQL Server日期和时间的格式,是每个SQL数据库用户都应该掌握的.本文我们主要就介绍一下SQL Server日 ...

  5. SQL Server日期时间格式转换字符串详解

    本文我们主要介绍了SQL Server日期时间格式转换字符串的相关知识,并给出了大量实例对其各个参数进行对比说明,希望能够对您有所帮助. 在SQL Server数据库中,SQL Server日期时间格 ...

  6. 使用IP连接SQL SERVER或者配置为连接字符串失败

    使用IP连接SQL SERVER或者配置为连接字符串失败 情景一:当在webconfig文件中使用   <add key="ConnectionString" value=& ...

  7. .net连接sql server的几种连接字符串的写法

    .net连接sql server的几种连接字符串的写法 1, 混合验证模式登录 server=电脑名 或 电脑IP;database=数据库名;uid=数据库登录名;password=数据库登录密码 ...

  8. SQL Server存储过程同时返回分页结果集和总数

    前言 好长时间没摸数据库了,周末在家写了个报表的存储过程,一时间对使用存储过程实现分页的同时并计算出记录总数不知道怎么更好的去实现.按照我们正常的业务逻辑,存储过程数据首先是分页,其次接受若干查询条件 ...

  9. SQL Server使用sp_executesql在存储过程中执行多个批处理

    SQL Server中有些SQL语句只能在一个批处理里面完成,例如CREATE SCHEMA语句创建SCHEMA的时候,每个SCHEMA都需要在一个单独的批处理里面完成: CREATE SCHEMA ...

随机推荐

  1. 2018NOIP赛后总结+后阶段信奥学习个人规划

    目录 2018NOIP赛后总结 赛前 赛时 赛后 后阶段信奥学习个人规划 主要方针 学习安排 比赛安排 刷题安排 2018NOIP赛后总结 赛前 在无数次的思想挣扎后,我在倒数 3 天的时候请假了.这 ...

  2. tensorflow word2vec详解

    maybe_download 下载text8.zip.可以手工下载下来.然后指定text8.zip的路径. read_data 解压text8.zip,把数据读入到data中. data是一个长数组, ...

  3. django上传并显示图片

    环境 python 3.5 django 1.10.6 步骤 创建名为 testupload的项目 django-admin startproject testupload 在项目testupload ...

  4. 制作Win10系统安装U盘和安装纯净版Win10

    重要提示 (以下为操作或安装前的必读提示) 1.准备8G或8G以上的U盘(32G以内).制作U盘会格式化U盘,此U盘内的数据需要提前备份至其他U盘或移动硬盘. 2.在格式化.删除分区和重新安装操作系统 ...

  5. Vue如何实现数据响应的

    参考博客:https://medium.com/vue-mastery/the-best-explanation-of-javascript-reactivity-fea6112dd80d 翻译博客: ...

  6. 【FastJson】使用学习

    FastJson使用学习 1.json转object.object转json List<CompanyLoopPicture> list = new ArrayList<Compan ...

  7. autocad 二次开发 最小包围圆算法

    autocad 二次开发 最小包围圆算法 主要实现了在模型空间下的得到一个包围所有图元的最小圆,该算法的思路是这样:1.从点集中随机选出两个点作为直径对圆进行初始化.2.判断下一个点p是否在圆中,如果 ...

  8. CentOS7下设置网卡名称以eth开头

    一.前言 在CentOS7下,网卡的名称不再是以eth命名了,下以内容将教你如何在CentOS7下修改网卡以"eth"开头. 二.环境 ♦CentOS7.5_x86-64 三.配置 ...

  9. AWVS 10.5使用指南

    前言 AWVS是一款可与IBM AppScan比肩的.功能十分强大的Web漏洞扫描器.由Acunetix开发,官方站点提供了关于各种类型漏洞的解释和如何防范,具体参考:Acunetix Web Vul ...

  10. Maven 项目在 Eclipse 的创建配置

    第1步 New 菜单 Other.. -> Maven -> Maven Project ,然后单击 Next .如下图所示 第2步 在New Maven Project向导中,选择Cre ...