File size: 1,018 Bytes
ac751b2 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | -- SQL Server DDL for SyncQueue table
-- Path: D:\GRAD!!!!\Final\Graduation_Project-v1.2\Data\database\create_sync_queue.sql
IF OBJECT_ID('SyncQueue', 'U') IS NULL
BEGIN
CREATE TABLE SyncQueue (
QueueId INT IDENTITY(1,1) PRIMARY KEY,
ProjectId INT NOT NULL,
OperationType VARCHAR(10) NOT NULL,
Processed BIT NOT NULL DEFAULT 0,
CreatedAt DATETIME2 NOT NULL DEFAULT SYSUTCDATETIME(),
ProcessedAt DATETIME2 NULL,
RetryCount INT NOT NULL DEFAULT 0,
ErrorMessage NVARCHAR(MAX) NULL,
CONSTRAINT CHK_SyncQueue_OperationType CHECK (OperationType IN ('UPSERT', 'DELETE'))
);
-- Index to optimize querying of unprocessed items in chronological order
CREATE INDEX IX_SyncQueue_Unprocessed
ON SyncQueue (Processed, CreatedAt)
INCLUDE (ProjectId, OperationType, RetryCount);
PRINT 'SyncQueue table and index IX_SyncQueue_Unprocessed created successfully.';
END
ELSE
BEGIN
PRINT 'SyncQueue table already exists.';
END
|