キューで結果のバッチを取得するための SQL ストアド プロシージャがあります。Sqlite DB への移行を検討していますが、可能であればどのように移行するのだろうかと考えています。
ALTER PROCEDURE [dbo].[GetNextItemInQueue]
@LockedBy varchar(75)
AS
SET NOCOUNT ON;
declare
@Error int,
@ExitCode int,
@RowCount int,
@PendingStatus varchar(75),
@MinutesBeforeBreakLock int,
@RequestId int,
@BatchSize int
select
@Error = 0,
@ExitCode = 0,
@RowCount = 0,
@PendingStatus = 'Pending',
@MinutesBeforeBreakLock = 1,
@BatchSize = 100
BEGIN TRY
BEGIN TRANSACTION ProcessQueue
UPDATE TOP(@BatchSize) UploadQueue WITH (UPDLOCK, READPAST)
SET
LockedBy = @LockedBy,
LockedTime = GETDATE()
OUTPUT inserted.Id, inserted.LockedTime, inserted.CompletedTime, inserted.RequestType, inserted.RequestedTime, inserted.Status, inserted.LockedBy, inserted.Data
WHERE
STATUS = @PendingStatus
AND (LockedTime IS NULL OR
DateDiff(mi, LockedTime, GetDate()) >= @MinutesBeforeBreakLock)
COMMIT TRANSACTION ProcessQueue
END TRY
BEGIN CATCH
IF XACT_STATE() > 0
ROLLBACK TRANSACTION ProcessQueue;
ELSE IF XACT_STATE() < 0
ROLLBACK TRANSACTION;
END CATCH