SET XACT_ABORT ON; BEGIN TRANSACTION; IF OBJECT_ID(N'dbo.[EventJudgeScoreAttachment]','U') IS NULL BEGIN CREATE TABLE dbo.[EventJudgeScoreAttachment] ( [Id] BIGINT NOT NULL CONSTRAINT [PK_EventJudgeScoreAttachment] PRIMARY KEY, [EventId] BIGINT NOT NULL, [SessionId] BIGINT NOT NULL, [SessionEntryId] BIGINT NOT NULL, [ScoreSheetId] BIGINT NOT NULL, [JudgeAssignmentId] BIGINT NOT NULL, [RefereeId] BIGINT NOT NULL, [AttachmentType] NVARCHAR(32) NOT NULL, [FileName] NVARCHAR(128) NOT NULL, [FileUrl] NVARCHAR(1000) NOT NULL, [FileSize] BIGINT NOT NULL, [ContentType] NVARCHAR(64) NOT NULL, [IdempotencyKey] NVARCHAR(64) NOT NULL, [IsCurrent] BIT NOT NULL CONSTRAINT [DF_EventJudgeScoreAttachment_IsCurrent] DEFAULT (1), [DeleteMark] BIT NOT NULL CONSTRAINT [DF_EventJudgeScoreAttachment_DeleteMark] DEFAULT (0), [CreatedUserId] BIGINT NOT NULL, [CreatedTime] DATETIME2(3) NOT NULL, [UpdatedUserId] BIGINT NULL, [UpdatedTime] DATETIME2(3) NULL ); END; IF OBJECT_ID(N'dbo.[FK_EventJudgeScoreAttachment_Sheet]','F') IS NULL ALTER TABLE dbo.[EventJudgeScoreAttachment] WITH CHECK ADD CONSTRAINT [FK_EventJudgeScoreAttachment_Sheet] FOREIGN KEY([ScoreSheetId]) REFERENCES dbo.[EventJudgeScoreSheet]([Id]); IF NOT EXISTS(SELECT 1 FROM sys.indexes WHERE object_id=OBJECT_ID(N'dbo.[EventJudgeScoreAttachment]') AND name=N'UX_EventJudgeScoreAttachment_Idempotency') CREATE UNIQUE NONCLUSTERED INDEX [UX_EventJudgeScoreAttachment_Idempotency] ON dbo.[EventJudgeScoreAttachment]([ScoreSheetId],[IdempotencyKey]); IF NOT EXISTS(SELECT 1 FROM sys.indexes WHERE object_id=OBJECT_ID(N'dbo.[EventJudgeScoreAttachment]') AND name=N'UX_EventJudgeScoreAttachment_Current') CREATE UNIQUE NONCLUSTERED INDEX [UX_EventJudgeScoreAttachment_Current] ON dbo.[EventJudgeScoreAttachment]([ScoreSheetId],[AttachmentType]) WHERE [IsCurrent]=1 AND [DeleteMark]=0; COMMIT TRANSACTION;