dbo.usp_RefreshViews - P

type: P ( stored procedure ), modify_date: 2022-07-04 11:03:32

RepoObject_guid: 1BACB147-4AF5-EB11-850C-A81E8446D5B0

Description

  • refreshes views in a given schema or in all schemas

Examples

Example 1. Usage
EXEC [dbo].[usp_RefreshViews]
@Schema = 'MySchema'

Parameters

  • @Schema (nvarchar(128))

Entity Diagram

entity-dbo.usp_refreshviews

References

Object Reference Diagram - 1 1

entity_1_1_objectref-dbo.usp_refreshviews

Object Reference Diagram - Referenced - 30 0

entity_30_0_objectref-dbo.usp_refreshviews

Object Reference Diagram - Referencing - 0 30

entity_0_30_objectref-dbo.usp_refreshviews

sql_modules_definition

dbo.usp_RefreshViews - P script
/*
<<property_start>>Description
* refreshes views in a given schema or in all schemas
<<property_end>>

<<property_start>>exampleUsage
EXEC [dbo].[usp_RefreshViews]
@Schema = 'MySchema'
<<property_end>>
*/
CREATE Procedure [dbo].[usp_RefreshViews]
( @Schema NVarchar(128) = Null )
As
Declare @View_Schema NVarchar(128);
Declare @View_Name NVarchar(128);
Declare @View_Name_Full NVarchar(300);
Declare @cmd As NVarchar(4000);

If @Schema Is Not Null
Begin
    Declare cur Cursor For
    Select
        TABLE_SCHEMA
      , TABLE_NAME
    From
        INFORMATION_SCHEMA.VIEWS
    Where
        TABLE_SCHEMA = @Schema;
End;
Else
Begin
    Declare cur Cursor For
    Select
        TABLE_SCHEMA
      , TABLE_NAME
    From
        INFORMATION_SCHEMA.VIEWS;
End;

Open cur;

Fetch Next From cur
Into
    @View_Schema
  , @View_Name;

While @@Fetch_Status = 0
Begin
    Set @cmd = N'';
    Set @View_Name_Full = Concat ( QuoteName ( @View_Schema ), '.', QuoteName ( @View_Name ));
    Set @cmd = Concat ( 'sp_refreshview N''', @View_Name_Full, '''' );

    Exec sys.sp_executesql @cmd;

    Print Concat ( @cmd, '    Executed' );

    Fetch Next From cur
    Into
        @View_Schema
      , @View_Name;
End;

Close cur;
Deallocate cur;