• Try this. It refreshes the data in sysdepends. I don't guarantee that all necessary objects are covered, just the ones I was using when I wrote this.

    Yes, I know it uses a cursor and I could generate a string with the EXEC statements and execute that, but I don't see a big difference. Either way, I am executing the statements one at a time.

    SELECTGETDATE()

    DECLARE@NameVARCHAR(100),@TypeCHAR(5)

    DECLAREModList

    CURSORFAST_FORWARD READ_ONLY FOR

    SELECTxType, Name

    FROMsys.sysobjects

    WHERExType IN ('P', 'FN', 'TR', 'V', 'TF')

    ANDName NOT LIKE 'dt~_%' ESCAPE '~'

    ANDName NOT LIKE 'jtf%'

    ANDName NOT LIKE 'x~_%' ESCAPE '~'

    --ANDName NOT IN ('...', '...')

    ORDER BY Name

    OPENModList

    FETCHNEXT

    FROMModList

    INTO@Type, @Name

    WHILE@@FETCH_STATUS = 0

    BEGIN-- ModList Cursor

    PRINT@Type + @Name

    IF@Type = 'V'

    EXECsp_refreshview @Name

    ELSE

    EXECsp_refreshsqlmodule @Name

    FETCHNEXT

    FROMModList

    INTO@Type, @Name

    END-- ModList Cursor

    CLOSEModList

    DEALLOCATE ModList

    SELECTGETDATE()