ITPub博客

首页 > 数据库 > SQL Server > SQLServer 的动态拼接

SQLServer 的动态拼接

原创 SQL Server 作者:hu825065235 时间:2015-07-22 11:18:34 0 删除 编辑
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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-02-26

  • 博文量
    34
  • 访问量
    69261