Click here to Skip to main content
15,889,877 members

Comments by Basavaraj P Biradar (Top 2 by date)

Basavaraj P Biradar 19-Nov-11 2:18am View    
Deleted
Just one comment, as sql_modules will have row's only for Objects of type P, RF, V, TR, FN, IF, TF, R and D. So, the object types such as U, X, S, L etc... mentioned in the case statement are irrelevant and they may mislead. If possible please take out the irrelevant object type's mentioned in the case statement.
Basavaraj P Biradar 26-Oct-11 11:29am View    
Deleted
In some rare cases this query will return in-correct result, because in syscomments table the text column is of type nvarchar(4000). If the sp text is exceeding this limit, sp text is split and stored in the multiple rows, and if the seach string is at the spliting position, then search will fail to return such stored procedure name.

Also in the query you are not getting the sp content and that is the reason you are assuming it is much faster. But when I executed below query, found that it is much slower and also leading to lot of logical reads also...

SET STATISTICS IO ON
SET STATISTICS TIME ON

SELECT DISTINCT so.name
FROM dbo.sysobjects so
inner join .dbo.syscomments sc on so.id=sc.id
WHERE so.xtype='P' AND sc.text like '%SearchString%'


SELECT OBJECT_NAME(object_id)
FROM sys.procedures
WHERE OBJECT_DEFINITION(object_id) LIKE '%SearchString%'

SET STATISTICS IO OFF
SET STATISTICS TIME OFF