通过执行一个字符串对一个参数附值

平时在写存储过程的时候经常会遇到这样的一个场景:
目的:是为了获得一个参数集和一些自定义输出参数
输入参数:一个查询状态(where a = ...)
需求:需要执行一个字符串来给一个中间参数或是一个输出参数赋值
解决方案:通过使用"SP_EXECUTESQL" 这个系统存储过程
它的语法是这样的:
sp_executesql [ @stmt = ] stmt
[
    {, [@params=] N'@parameter_name data_type [ [ OUT [ PUT ][,...n]' }
     {, [ @param1 = ] 'value1' [ ,...n ] }
]

说明:我google了一下 sp_executesql 发现还是蛮多的,这里就不去介绍这个存储过程了。这里主要写

一下自己在工作中如何解决这个问题,也算是做一下工作笔记,以便下次遇到这个问题的时候可以快速解

决,其他人遇到这个问题的时候也可以稍稍节约点时间,虽然仅仅是个小问题,嘿嘿!

--获得记录条数:
 DECLARE @SQL nvarchar(2000)

 SELECT @SQL = 'SELECT @CountTemp=count(*) FROM TableName ' + @ConditionSQL
  
 EXECUTE SP_EXECUTESQL
        @SQL,
 N'@CountTemp int output',
 @CountTemp = @RecordCount output
 SELECT @RecordCount=ISNULL(@RecordCount,0)
备注:
 @RecordCount int output 是一个输出参数
 TableName :为表名
 @CountTemp :临时变量(字符串里的一个变量,做临时存储记录条数用)
注意:
 @RecordCount 作为存储过程的中间参数的话,也一定要声明为output,不然得不到值

这样就达到我的目的了。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值