spBulkUpdate_CMSReservedItems

Parameters

Parameter Parameter Type Mode Description
@SessionId nvarchar(50) IN
@XML ntext IN
@Seconds int IN
@ExpiresAt datetime INOUT

Definition

Copy

                CREATE   PROCEDURE [dbo].[spBulkUpdate_CMSReservedItems]
                     (
                     @SessionId nvarchar(50) = '',
                     @XML ntext = '',
                     @Seconds int = 600,
                     @ExpiresAt datetime out
                     )

                     AS
                      SET NOCOUNT ON
                      DECLARE @idoc int
                      DECLARE @expires datetime

                      EXEC sp_xml_preparedocument @idoc OUTPUT, @XML

                      begin transaction

                      DELETE 
                      FROM dbo.CMSReservedItems
                      WHERE ExpiresAt <= GETUTCDATE() or SESSIONID = @SessionId

                      SET @expires = DATEADD(SECOND, @Seconds, GETUTCDATE())

                      INSERT INTO dbo.CMSReservedItems(
                             SessionId,
                             ExpiresAt,
                             ItemQty,
                             ItemId                     
                      )               
                      SELECT @SessionId, @expires, *
                      FROM OPENXML (@idoc, '/ArrayOfReservedItem/ReservedItem', 2
                             WITH(
                                   [ItemQty] int,
                                   [ItemId] int
                             ) 

                      EXEC sp_xml_removedocument @idoc

                      commit transaction

                      SET @ExpiresAt = @expires