USP_CAMPAIGNFUNDRAISERPOSITIONCODE_UPDATEENTRY
Used to update a table entry in the "Campaign Fundraiser Position Code" code table.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The ID of the table entry being updated. |
@DESCRIPTION | nvarchar(100) | IN | The table entry description. |
@SEQUENCE | int | IN | The table entry sequence (when the code table sort order is user-defined). |
@ACTIVE | bit | IN | Indicates whether or not the table entry is active. |
@TSLONG | int | IN | The TSLONG value of the table entry being updated. This is used to manage multi-user concurrency issues when multiple users access the same record. |
@CHANGEAGENTID | uniqueidentifier | IN | The ID of the change agent adding the code table entry. |
Definition
Copy
/*
Generated by Blackbaud AppFx Platform
Date: 9/30/2015 1:00:43 AM
Assembly Version: Blackbaud.AppFx.Platform.SqlClr, Version=4.0.153.0, Culture=neutral, PublicKeyToken=null
Copyright Blackbaud
*/
CREATE procedure dbo.USP_CAMPAIGNFUNDRAISERPOSITIONCODE_UPDATEENTRY
(
@ID uniqueidentifier,
@DESCRIPTION nvarchar(100),
@SEQUENCE int= null,
@ACTIVE bit,
@TSLONG int=0,
@CHANGEAGENTID uniqueidentifier = NULL
)
as
SET NOCOUNT ON;
if (@DESCRIPTION IS NULL) or len(@DESCRIPTION)= 0
begin
raiserror('CAMPAIGNFUNDRAISERPOSITIONCODE table entry description is required',16,1)
return -2
end
if @CHANGEAGENTID IS NULL
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @SEQUENCE is null
UPDATE dbo.CAMPAIGNFUNDRAISERPOSITIONCODE SET
DESCRIPTION=@DESCRIPTION,
ACTIVE=@ACTIVE,
CHANGEDBYID=@CHANGEAGENTID,
DATECHANGED=GETDATE()
WHERE ID=@ID AND (@TSLONG=0 OR @TSLONG=TSLONG)
else
UPDATE dbo.CAMPAIGNFUNDRAISERPOSITIONCODE SET
DESCRIPTION=@DESCRIPTION,
[SEQUENCE] = @SEQUENCE,
ACTIVE=@ACTIVE,
CHANGEDBYID=@CHANGEAGENTID,
DATECHANGED=GETDATE()
WHERE ID=@ID AND (@TSLONG=0 OR @TSLONG=TSLONG)
if @@rowcount=0 and @@error=0
begin
raiserror('CAMPAIGNFUNDRAISERPOSITIONCODE table entry has been modified or deleted by another user',16,2)
return -3
end
if @@error<>0 return 1
if @SEQUENCE is not null
declare @seqCount int
select @seqCount = count(SEQUENCE)
from dbo.CAMPAIGNFUNDRAISERPOSITIONCODE
where SEQUENCE = @SEQUENCE
if @seqCount > 1
begin
update dbo.CAMPAIGNFUNDRAISERPOSITIONCODE
set SEQUENCE = SEQUENCE + 1,
CHANGEDBYID=@CHANGEAGENTID,
DATECHANGED=GETDATE()
where SEQUENCE = @SEQUENCE and ID <> @ID;
execute dbo.USP_CAMPAIGNFUNDRAISERPOSITIONCODE_NORMALIZESEQUENCENUMBERS @CHANGEAGENTID;
end
return 0