USP_SMARTQUERYINSTANCE_DELETE

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@APPUSERID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


        create procedure dbo.USP_SMARTQUERYINSTANCE_DELETE(@ID uniqueidentifier,
            @APPUSERID uniqueidentifier,
            @CHANGEAGENTID uniqueidentifier)
        as

        set nocount on;

        declare @EXISTINGOWNERID uniqueidentifier;
        declare @EXISTINGOWNER nvarchar(128);
        declare @EXISTINGOTHERSCANMODIFY bit;
        declare @ISSYSADMIN bit;

        select    @EXISTINGOTHERSCANMODIFY = SMARTQUERYINSTANCE.OTHERSCANMODIFY, 
            @EXISTINGOWNERID = SMARTQUERYINSTANCE.OWNERID, 
            @EXISTINGOWNER = APPUSER.USERNAME
        from dbo.SMARTQUERYINSTANCE 
        inner join dbo.APPUSER on SMARTQUERYINSTANCE.OWNERID = APPUSER.ID
        where SMARTQUERYINSTANCE.ID = @ID;

        select @ISSYSADMIN = ISSYSADMIN from dbo.APPUSER where ID = @APPUSERID;

        if @EXISTINGOWNERID <> @APPUSERID and @ISSYSADMIN = 0
        begin
            if @EXISTINGOTHERSCANMODIFY = 0
            begin
                raiserror(N'This smart query instance can only be deleted by the user %s or a system administrator.', 16, 1, @EXISTINGOWNER);
                return 1;
            end;
        end;

        exec dbo.USP_SMARTQUERYINSTANCE_DELETEIDSET @ID, @CHANGEAGENTID;

        exec dbo.USP_SMARTQUERYINSTANCE_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID;