dbo.find_text_in_sp

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

Name Data Type Length Description
@text varchar 250
@dbname varchar 64

SQL Script

SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
create PROCEDURE dbo.find_text_in_sp   
  @text varchar(250),   
  @dbname varchar(64) = null   
AS BEGIN   
SET NOCOUNT ON;   
  
if @dbname is null   
  begin   
    --enumerate all databases.
  DECLARE #db CURSOR FOR Select Name from master..sysdatabases   
  declare @c_dbname varchar(64)   
  
  OPEN #db FETCH #db INTO @c_dbname   
  while @@FETCH_STATUS <> -1 --and @MyCount < 500
   begin   
     execute find_text_in_sp @text, @c_dbname   
     FETCH #db INTO @c_dbname   
   end     
  CLOSE #db DEALLOCATE #db   
 end --if @dbname is null
else   
 begin --@dbname is not null
  declare @sql varchar(250)   
  --create the find like command
  select @sql = 'select ''' + @dbname + ''' as db, o.name,m.definition '   
  select @sql = @sql + ' from '+@dbname+'.sys.sql_modules m '   
  select @sql = @sql + ' inner join '+@dbname+'..sysobjects o on m.object_id=o.id'   
  select @sql = @sql + ' where [definition] like ''%'+@text+'%'''   
  execute (@sql)   
 end --@dbname is not null
END
GO

Depends On

No items found

Used By

No items found