spAddUpdate_ConditionBlock

Parameters

Parameter Parameter Type Mode Description
@PKID int INOUT
@Name nvarchar(50) IN
@Deleted bit IN
@ConditionBlockConditions xml IN

Definition

Copy


            CREATE PROCEDURE [dbo].[spAddUpdate_ConditionBlock]
            (
                @PKID int output,
                @Name nvarchar(50),
                @Deleted bit,
                @ConditionBlockConditions XML
            )
            AS
            BEGIN
                IF (@PKID <= 0)
                BEGIN
                    INSERT INTO [dbo].[ConditionBlock]
                    (
                        [Name],
                        [Deleted]
                    )
                    VALUES
                    (
                        @Name,
                        @Deleted
                    )

                    SELECT @PKID = SCOPE_IDENTITY()
                END
                ELSE
                BEGIN
                    UPDATE [dbo].[ConditionBlock] SET
                        [Name] = @Name,
                        [Deleted] = @Deleted
                    WHERE [ID] = @PKID
                END

                -- Handle @ConditionBlockConditions

                DELETE FROM [dbo].[ConditionBlockCondition]
                    WHERE [ConditionBlockID] = @PKID

                INSERT [dbo].[ConditionBlockCondition]
                    ([ConditionBlockID], [ConditionID], [Priority])
                SELECT
                    @PKID,
                    cbc.c.value('@ID', 'int'),
                    cbc.c.value('@Priority', 'int')
                FROM @ConditionBlockConditions.nodes('/ConditionBlockConditions/Condition') cbc(c)
            END