sqlserver使用sp_executesql执行动态语句,并在存储过程中获取执行后的结果

declare @SqlStr nvarchar(max)--判断语句
declare @AlarmType varchar(10)--告警类别 max:大于范围值,min:小于范围值
declare @AlarmTime varchar(50)--告警时间
declare @AlarmDsc varchar(100)--告警提示内容(定死)

--declare @SqlStr varchar(max)--sql动态语句
--select @SqlStr = "select top 1 @AlarmType= (
--	case when cast(Value as float)<2 then 'min' 
--	when cast(Value as float)>3 then 'max'
--	else ''
--	end),--告警类别
--	@AlarmTime = UpdateTime, --告警时间
--	@AlarmDsc = TagName+'('+ Tag +')当前值为 '+ Value + Unit +',不在范围2<=溶解氧值<=3内,应对磁悬浮鼓风机频率或台数作出调整'--告警提示内容
--	from OPC_RealTime A
--where Tag='DO402' and (cast(Value as float)<2 or cast(Value as float)>3)"

--@SqlStr我是使用数据库字段存起来的sql语句

exec sp_executesql @SqlStr,N'@AlarmType varchar(10) output,@AlarmTime varchar(50) output,@AlarmDsc varchar(100) output',@AlarmType output,@AlarmTime output,@AlarmDsc output

--测试结果是否成功
print @AlarmType
print @AlarmTime
print @AlarmDsc

注意:在存储过程中获取值,需要在存储过程中定义变量,也需要在exec sp_executesql后定义变量,可以同名,才可以编译成功并获取值

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值