sql补全

This commit is contained in:
马梓彭 2026-10-13 14:57:42 +08:00
parent 1f5b048c45
commit 7b26c87127
2 changed files with 24 additions and 2 deletions

View File

@ -1354,7 +1354,18 @@ BEGIN TRY
IF EXISTS(SELECT 1 FROM #ItemSeed s JOIN #RuleMap m ON m.SourceId=s.SourceRuleId WHERE NOT EXISTS(SELECT 1 FROM dbo.ScoreRuleItem i WHERE i.ScoreRuleId=m.TargetId AND i.JudgeRoleType=s.JudgeRoleType AND i.ItemCode=s.ItemCode AND i.DeleteMark=s.DeleteMark))
THROW 51004,N'计分规则明细种子ID被占用且业务键不存在,无法安全初始化。',1;
-- 若重复执行初始化脚本,物理删除已不在最终种子中的旧交互绳难度项。
-- 若重复执行初始化脚本,先保留历史评分快照并解除规则项引用,再物理删除旧交互绳难度项。
IF OBJECT_ID(N'dbo.EventJudgeScoreDetail',N'U') IS NOT NULL
BEGIN
UPDATE detail
SET ScoreRuleItemId=NULL,UpdatedUserId=1000,UpdatedTime=SYSUTCDATETIME()
FROM dbo.EventJudgeScoreDetail detail
JOIN dbo.ScoreRuleItem item ON item.Id=detail.ScoreRuleItemId
JOIN #RuleMap map ON map.TargetId=item.ScoreRuleId AND map.SourceId IN (3500,3600)
WHERE item.JudgeRoleType IN (N'DJ',N'DT')
AND item.ItemType=1
AND NOT EXISTS(SELECT 1 FROM #ItemSeed seed WHERE seed.SourceRuleId=map.SourceId AND seed.JudgeRoleType=item.JudgeRoleType AND seed.ItemCode=item.ItemCode);
END;
DELETE i
FROM dbo.ScoreRuleItem i
JOIN #RuleMap m ON m.TargetId=i.ScoreRuleId AND m.SourceId IN (3500,3600)

View File

@ -571,7 +571,18 @@ BEGIN TRY
IF EXISTS(SELECT 1 FROM #ItemSeed s JOIN #RuleMap m ON m.SourceId=s.SourceRuleId WHERE NOT EXISTS(SELECT 1 FROM dbo.ScoreRuleItem i WHERE i.ScoreRuleId=m.TargetId AND i.JudgeRoleType=s.JudgeRoleType AND i.ItemCode=s.ItemCode AND i.DeleteMark=s.DeleteMark))
THROW 51004,N'计分规则明细种子ID被占用且业务键不存在,无法安全初始化。',1;
-- 若重复执行初始化脚本,物理删除已不在最终种子中的旧交互绳难度项。
-- 若重复执行初始化脚本,先保留历史评分快照并解除规则项引用,再物理删除旧交互绳难度项。
IF OBJECT_ID(N'dbo.EventJudgeScoreDetail',N'U') IS NOT NULL
BEGIN
UPDATE detail
SET ScoreRuleItemId=NULL,UpdatedUserId=1000,UpdatedTime=SYSUTCDATETIME()
FROM dbo.EventJudgeScoreDetail detail
JOIN dbo.ScoreRuleItem item ON item.Id=detail.ScoreRuleItemId
JOIN #RuleMap map ON map.TargetId=item.ScoreRuleId AND map.SourceId IN (3500,3600)
WHERE item.JudgeRoleType IN (N'DJ',N'DT')
AND item.ItemType=1
AND NOT EXISTS(SELECT 1 FROM #ItemSeed seed WHERE seed.SourceRuleId=map.SourceId AND seed.JudgeRoleType=item.JudgeRoleType AND seed.ItemCode=item.ItemCode);
END;
DELETE i
FROM dbo.ScoreRuleItem i
JOIN #RuleMap m ON m.TargetId=i.ScoreRuleId AND m.SourceId IN (3500,3600)