• That code's written for SQL 2000; I suggest completely ignoring it.

    Instead, the code below should give you a list of object names and their full text reasonably quickly.

    If you want to add in the part about showing the specific text that matches, let me know. Just be aware that'll be slower -- perhaps much slower?!

    IF OBJECT_ID('tempdb..#search_strings') IS NOT NULL

    DROP TABLE #search_strings

    CREATE TABLE #search_strings (

    search_id int IDENTITY(1, 1) NOT NULL,

    search_string nvarchar(40) NOT NULL

    )

    INSERT INTO #search_strings

    SELECT 'linked_server_name1'

    --UNION ALL SELECT 'linked_server_name2'

    --UNION ALL ...

    SELECT

    OBJECT_NAME(object_id) AS Object_Name,

    search_string,

    (SELECT definition FROM sys.sql_modules WHERE object_id = derived.object_id) AS Object_Text

    FROM (

    SELECT DISTINCT

    sm.object_id,

    ss.search_string

    FROM sys.sql_modules sm

    CROSS JOIN #search_strings AS ss

    WHERE

    CAST(OBJECTPROPERTYEX(sm.object_id, 'IsProcedure') AS int) = 1 AND

    sm.definition LIKE '%' + ss.search_string + '%'

    ) AS derived

    ORDER BY

    Object_Name

    SQL DBA,SQL Server MVP(07, 08, 09) A socialist is someone who will give you the shirt off *someone else's* back.