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后定义变量,可以同名,才可以编译成功并获取值