USP_SYSTEMROLE_CPYDTLSTPRMTORCOP

Parameters

Parameter Parameter Type Mode Description
@NEWFEATUREID uniqueidentifier IN
@PERMISSIONEDFEATUREID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy

            create procedure dbo.USP_SYSTEMROLE_CPYDTLSTPRMTORCOP
            (
                @NEWFEATUREID uniqueidentifier,
                @PERMISSIONEDFEATUREID uniqueidentifier,
                @CHANGEAGENTID uniqueidentifier
            )
            as
            --Used for revisions
            set nocount on;

            begin try

                declare @CURRENTDATE datetime;

                set @CURRENTDATE = getdate();

                if @CHANGEAGENTID is null
                    exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

                insert into dbo.SYSTEMROLEPERM_RECORDOPERATION
                (
                    SYSTEMROLEID, 
                    RECORDOPERATIONCATALOGID, 
                    GRANTORDENY, 
                    ADDEDBYID, 
                    CHANGEDBYID, 
                    DATEADDED, 
                    DATECHANGED
                )
                select 
                    SYSTEMROLEID, 
                    @NEWFEATUREID
                    GRANTORDENY, 
                    @CHANGEAGENTID
                    @CHANGEAGENTID
                    @CURRENTDATE
                    @CURRENTDATE
                from dbo.SYSTEMROLEPERM_DATALIST
                where DATALISTCATALOGID = @PERMISSIONEDFEATUREID
                        and not exists(select top 1 SUB.ID from dbo.SYSTEMROLEPERM_RECORDOPERATION SUB
                                    where SUB.RECORDOPERATIONCATALOGID = @NEWFEATUREID and SUB.SYSTEMROLEID = SYSTEMROLEPERM_DATALIST.SYSTEMROLEID)
                        and exists(select top 1 CAT.ID from RECORDOPERATIONCATALOG CAT where CAT.ID = @NEWFEATUREID);

            end try

            begin catch
                exec dbo.USP_RAISE_ERROR;
            end catch