USP_CONFIGURATIONDATACATALOG_CREATEORUPDATE

Creates or updates configuration data definitions in the ConfigurationDataCatalog table.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@PARENTTABLENAME nvarchar(128) IN
@PRIMARYKEYCOLUMNNAME nvarchar(128) IN
@DESCRIPTION nvarchar(max) IN
@CONFIGURATIONDATASPECXML xml IN
@EXPORTFORMMETADATAXML xml IN
@DISPLAYNAME nvarchar(100) IN
@CHANGEAGENTID uniqueidentifier IN
@CONFIGURATIONDATAFOLDER nvarchar(500) IN

Definition

Copy


            create procedure dbo.USP_CONFIGURATIONDATACATALOG_CREATEORUPDATE
                    @ID uniqueidentifier = null output
                    @PARENTTABLENAME nvarchar(128) = '',
                    @PRIMARYKEYCOLUMNNAME nvarchar(128) = '',                    
                    @DESCRIPTION nvarchar(max) = '',                    
                    @CONFIGURATIONDATASPECXML xml, 
                    @EXPORTFORMMETADATAXML xml,
                    @DISPLAYNAME nvarchar(100),                    
                    @CHANGEAGENTID uniqueidentifier = null,
                    @CONFIGURATIONDATAFOLDER nvarchar(500) = ''
                as

                set nocount on;

                declare @ExistingID uniqueidentifier

                if @ID is null
                    begin
                      select @ExistingID = ID from dbo.CONFIGURATIONDATACATALOG where DISPLAYNAME = @DISPLAYNAME
                      set @ID = @ExistingID
                    end
                else
                    select @ExistingID = ID from dbo.CONFIGURATIONDATACATALOG 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.CONFIGURATIONDATACATALOG
                            (ID, PARENTTABLENAME, PRIMARYKEYCOLUMNNAME, DESCRIPTION, CONFIGURATIONDATASPECXML, EXPORTFORMMETADATAXML, DISPLAYNAME, CONFIGURATIONDATAFOLDER, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                        values 
                            (@ID, @PARENTTABLENAME, @PRIMARYKEYCOLUMNNAME, @DESCRIPTION, @CONFIGURATIONDATASPECXML, @EXPORTFORMMETADATAXML, @DISPLAYNAME, @CONFIGURATIONDATAFOLDER, @CHANGEAGENTID, @CHANGEAGENTID, @DATE, @DATE)        
                    end

                else
                    update 
                        dbo.CONFIGURATIONDATACATALOG
                    set 
                        PARENTTABLENAME = @PARENTTABLENAME,
                        PRIMARYKEYCOLUMNNAME = @PRIMARYKEYCOLUMNNAME,
                        DESCRIPTION = @DESCRIPTION,
                        CONFIGURATIONDATASPECXML = @CONFIGURATIONDATASPECXML
                        EXPORTFORMMETADATAXML = @EXPORTFORMMETADATAXML,                            
                        CONFIGURATIONDATAFOLDER = @CONFIGURATIONDATAFOLDER,
                        DISPLAYNAME = @DISPLAYNAME,
                        CHANGEDBYID = @CHANGEAGENTID,                            
                        DATECHANGED = @DATE
                    where 
                        ID = @ID;

                if @@rowcount = 0 return 1;

                return 0;