Sql Server 遍历数据库文件找出使用了某个表/存储过程的所有存储过程

Sql Server 遍历数据库文件找出使用了某个表/存储过程的所有存储过程。

 1 CREATE Procedure SP_GetProc      
 2 @Object_Name Varchar(50)      
 3 as      
 4 Set nocount on      
 5   
 6 DECLARE @tmptable TABLE    
 7 (    
 8 ID int IDENTITY (1, 1),    
 9 [DataBase] Varchar(100),  
10 Name Varchar(500),  
11 Type Varchar(100),  
12 Create_Date Datetime  
13 )    
14   
15 DECLARE @SQLText TABLE    
16 (    
17 ID int IDENTITY (1, 1),    
18 SQLText Varchar(Max)  
19 )    
20   
21 if Charindex('#', @Object_Name) > 0  
22 begin   
23   Select @Object_Name = replace(@Object_Name, '#', '')  
24   
25   Insert Into @SQLText  
26     Select '      
27     Select ''' + Name + ''' [DataBase], CONVERT(VARCHAR(500), a.Name COLLATE Chinese_PRC_CI_AS) Name, a.Type, a.Create_Date      
28       From ' + Name+ '.sys.all_objects a   
29       Where a.Name Like ''%' + @Object_Name + '%'''      
30       From sys.databases where database_ID > 4      
31 end  
32 else begin  
33   Insert Into @SQLText  
34     Select '      
35     Select ''' + Name + ''' [DataBase], CONVERT(VARCHAR(500), a.Name COLLATE Chinese_PRC_CI_AS) Name, a.Type, a.Create_Date      
36       From ' + Name+ '.sys.all_objects a, ' + Name + '.sys.syscomments b       
37       Where a.object_id = b.id and b.text Like ''%' + @Object_Name + '%'''      
38       From sys.databases where database_ID > 4      
39 end  
40   
41 Declare @ID Int, @MID Int, @SQl Varchar(Max)  
42 Select @ID = 1, @MID = MAX(ID) From @SQLText  
43 While @ID <= @MID  
44 begin   
45   Select @SQl = SQLText From @SQLText Where ID = @ID  
46   Insert Into @tmptable Exec (@SQl)   
47   Select @ID = @ID + 1  
48 end  
49   
50 Select * From @tmptable Order by ID  
View Code

 

转载于:https://www.cnblogs.com/xzxBlog/p/4625071.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值