USP_PACKAGECATALOG_CREATEORUPDATE

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@PACKAGENAME nvarchar(100) IN
@DESCRIPTION nvarchar(max) IN
@PACKAGESPECXML xml IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy



create procedure dbo.USP_PACKAGECATALOG_CREATEORUPDATE
    @ID uniqueidentifier = null output
    @PACKAGENAME nvarchar(100),
    @DESCRIPTION nvarchar(max) = '',
    @PACKAGESPECXML xml, 
    @CHANGEAGENTID uniqueidentifier = null

as

set nocount on

declare @ExistingID uniqueidentifier

if @ID is null
    begin
      select @ExistingID = ID from dbo.PACKAGECATALOG where PACKAGENAME = @PACKAGENAME
      set @ID = @ExistingID
    end
else
    select @ExistingID = ID from dbo.PACKAGECATALOG 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.PACKAGECATALOG
        (ID, PACKAGENAME, DESCRIPTION, PACKAGESPECXML, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
        values 
        (@ID, @PACKAGENAME, @DESCRIPTION, @PACKAGESPECXML, @ChangeAgentID, @ChangeAgentID, @date, @date)        
    end

else
    update dbo.PACKAGECATALOG
        set PACKAGENAME=@PACKAGENAME,
            DESCRIPTION=@DESCRIPTION,
            PACKAGESPECXML=@PACKAGESPECXML,
            CHANGEDBYID=@ChangeAgentID,
            DATECHANGED=@date
        where ID = @ID;

if @@rowcount=0 return 1;

return 0;