分享:sp_get_object_definition查找所有数据库下面哪些对象定义语句中包括想要查找的字符串...

 
USE master 
go 
IF OBJECT_ID( 'sp_get_object_definition','P') IS NOT NULL 
DROP PROCEDURE sp_get_object_definition
go 
CREATE PROC sp_get_object_definition ( @char NVARCHAR(max) , @db NVARCHAR(128) = '' )
AS
-- 作者:陈恩辉-弘恩 
-- 查找所有数据库下面对象定义中包括想要查找的字符串
SET NOCOUNT ON ;
SELECT TOP 0 DB_NAME() AS DB_NAME , o.name,o.type ,s.definition  
INTO #sp_get_object_definition
FROM sys.objects o ,sys.sql_modules s

DECLARE @sql NVARCHAR(max) 
SET @sql = ''
SELECT @sql = @sql + REPLACE (
'
USE @dbname 
insert into #sp_get_object_definition

SELECT DB_NAME() AS DB_NAME , o.name,o.type ,s.definition  
FROM sys.objects o ,sys.sql_modules s
WHERE o.object_id = s.object_id AND s.definition LIKE ''%'+ @char + '%''

' ,'@dbname',name)  FROM sys.databases 
WHERE name LIKE  @db + '%'
PRINT @sql
EXEC sp_executesql @sql
SELECT  DB_NAME ,
        name ,
        type ,
        definition
FROM    #sp_get_object_definition ;
DROP TABLE #sp_get_object_definition ;
go 

EXEC sp_MS_marksystemobject 'sp_get_object_definition'
go 


 
 
 
 
 
 

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值