Syntax check all stored procedures?

前端 未结 9 1979
情话喂你
情话喂你 2020-12-04 22:51

i want to ensure that all stored procedures are still syntactically valid. (This can happen if someone renames/deletes a table/column).

Right now my solution to chec

9条回答
  •  佛祖请我去吃肉
    2020-12-04 22:54

    Here is an amendment which deals with multiple schemas

    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    ALTER PROCEDURE [dbo].[RefreshAllViews] AS
    
    -- This sp will refresh all views in the catalog. 
    --     It enumerates all views, and runs sp_refreshview for each of them
    
    DECLARE abc CURSOR FOR
         SELECT TABLE_SCHEMA+'.'+TABLE_NAME AS ViewName
         FROM INFORMATION_SCHEMA.VIEWS
    OPEN abc
    
    DECLARE @ViewName varchar(128)
    
    -- Build select string
    DECLARE @SQLString nvarchar(2048)
    
    FETCH NEXT FROM abc 
    INTO @ViewName
    WHILE @@FETCH_STATUS = 0 
    BEGIN
        SET @SQLString = 'EXECUTE sp_RefreshView ['+@ViewName+']'
        PRINT @SQLString
        EXECUTE sp_ExecuteSQL @SQLString
    
        FETCH NEXT FROM abc
        INTO @ViewName
    END
    CLOSE abc
    DEALLOCATE abc
    GO
    

提交回复
热议问题