USP_SQLVIEWCATALOG_CREATEORUPDATE

Create or update SQL views in the catalog table

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@VIEWNAME nvarchar(128) IN
@DESCRIPTION nvarchar(max) IN
@SQLVIEWSPECXML xml IN
@CHANGEAGENTID uniqueidentifier IN
@MARTKEY nvarchar(255) IN

Definition

Copy


CREATE procedure dbo.[USP_SQLVIEWCATALOG_CREATEORUPDATE]
  @ID uniqueidentifier = null output
    @VIEWNAME nvarchar(128),
    @DESCRIPTION nvarchar(max) = '',
    @SQLVIEWSPECXML xml, 
    @CHANGEAGENTID uniqueidentifier = null,
  @MARTKEY nvarchar(255) = ''  

as

set nocount on

declare @ExistingID uniqueidentifier

if @ID is null
    begin
      select @ExistingID = [ID] from dbo.[SQLVIEWCATALOG] where [VIEWNAME] = @VIEWNAME
      set @ID = @ExistingID
    end
else
    select @ExistingID = [ID] from dbo.[SQLVIEWCATALOG] where [ID] = @ID

if @ChangeAgentID is null 
    exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @ChangeAgentID output

declare @date datetime
set @date = getDate()

if @ExistingID is null 

    begin    

        if @ID is null set @ID = NewID()

        insert into dbo.[SQLVIEWCATALOG]
          ([ID], [VIEWNAME], [DESCRIPTION], [SQLVIEWSPECXML], [ADDEDBYID], [CHANGEDBYID], [DATEADDED], [DATECHANGED], [MARTKEY])
        values 
          (@ID, @VIEWNAME, @DESCRIPTION, @SQLVIEWSPECXML, @ChangeAgentID, @ChangeAgentID, @date, @date, @MARTKEY)        

    end

else

    update dbo.[SQLVIEWCATALOG]

        set [VIEWNAME] = @VIEWNAME,
            [DESCRIPTION] = @DESCRIPTION,
            [SQLVIEWSPECXML] = @SQLVIEWSPECXML,
            [CHANGEDBYID] = @ChangeAgentID,
            [DATECHANGED] = @date,
        [MARTKEY] = @MARTKEY
        where [ID] = @ID;

if @@rowcount=0 return 1;

return 0;