SQLServer 的动态拼接

ALTER  procedure [dbo].[p_mon_auto_job2]
@monitor_ip varchar(20),
@monitor_db varchar(20),
@dbip      varchar(20),
@db_name   varchar(20),
@alert_level varchar(8)
as 
begin
     ----定义接收原先存储过程变量
    declare   @proc_name varchar(100)
declare   @sql  nvarchar(max)


/*
    declare   @dbname varchar(100)
    declare   @dbip varchar(100)


set @dbip=@@SERVERNAME
set @dbname=DB_NAME()
*/

select a.procname,a.status,a.alert_level  into  #T_MONITOR_TASK from [hxerp1].monitordb.dbo.T_MONITOR_TASK a 
where a.alert_level=@alert_level and a.status='启用'
 
    
----定义游标,用于取procname的值
    declare   get_proc_name_cur cursor for  select procname  from  #T_MONITOR_TASK a where a.alert_level=@alert_level and a.status='启用' 
 
----打开游标
open get_proc_name_cur


----给变量赋值
fetch  next  from  get_proc_name_cur into  @proc_name


---循环取值
while @@FETCH_STATUS=0
 begin
    
---拼接存储过程
set @sql=N'exec '+@proc_name+' '+''''+@monitor_ip+''''+','+''''+@monitor_db+''''+','+''''+@dbip+''''+','+''''+@db_name+''''  --恶心
---用于执行巡检的存储过程
    exec sp_executesql @sql
---print @sql
---赋新的值给变量
fetch  next  from  get_proc_name_cur into  @proc_name
 end


 -----释放游标资源
deallocate  get_proc_name_cur
end

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29507357/viewspace-1744219/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29507357/viewspace-1744219/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值