-- ======================================== -- 团播机构 v1.0.1 数据库回滚脚本 -- 创建时间: 2025-01-10 -- 说明: 回滚首页弹窗功能和Banner跳转功能的数据库修改 -- 警告: 此操作将删除相关数据,请谨慎执行! -- ======================================== -- 检查脚本执行环境 PRINT '开始执行 v1.0.1 数据库回滚脚本...' PRINT '执行时间: ' + CONVERT(VARCHAR, GETDATE(), 120) PRINT '警告: 此操作将删除相关数据,请确认后继续!' -- ======================================== -- 1. 删除弹窗链接类型字典数据 -- ======================================== PRINT '正在删除弹窗链接类型字典数据...' -- 删除字典数据 IF EXISTS (SELECT * FROM sys_dict_data WHERE DictType = 'liveforum_popup_linktype') BEGIN DELETE FROM sys_dict_data WHERE DictType = 'liveforum_popup_linktype'; PRINT '✓ 删除弹窗链接类型字典数据' END -- 删除字典类型 IF EXISTS (SELECT * FROM sys_dict_type WHERE DictType = 'liveforum_popup_linktype') BEGIN DELETE FROM sys_dict_type WHERE DictType = 'liveforum_popup_linktype'; PRINT '✓ 删除弹窗链接类型字典类型' END -- ======================================== -- 2. 删除 Banner 字典中的通知详情选项 -- ======================================== PRINT '正在删除 Banner 字典中的通知详情选项...' IF EXISTS (SELECT * FROM sys_dict_data WHERE DictType = 'liveforum_banners_linktype' AND DictValue = '4') BEGIN DELETE FROM sys_dict_data WHERE DictType = 'liveforum_banners_linktype' AND DictValue = '4'; PRINT '✓ 删除 Banner 字典中的通知详情选项' END -- ======================================== -- 3. 恢复 T_Banners 表的原始约束 -- ======================================== PRINT '正在恢复 T_Banners 表的原始约束...' -- 删除新约束 IF EXISTS (SELECT * FROM sys.check_constraints WHERE name = 'CK_T_Banners_LinkType') BEGIN ALTER TABLE T_Banners DROP CONSTRAINT CK_T_Banners_LinkType; PRINT '✓ 删除新的 LinkType 约束' END -- 恢复原始约束(只支持 1, 2, 3) ALTER TABLE T_Banners ADD CONSTRAINT CK_T_Banners_LinkType CHECK (LinkType IN (1, 2, 3)); PRINT '✓ 恢复原始 LinkType 约束 (1-帖子详情, 2-外部链接, 3-无链接)' -- ======================================== -- 4. 删除 T_HomePopups 表 -- ======================================== PRINT '正在删除 T_HomePopups 表...' -- 删除索引 IF EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_T_HomePopups_IsActive_StartTime_EndTime') BEGIN DROP INDEX IX_T_HomePopups_IsActive_StartTime_EndTime ON T_HomePopups; PRINT '✓ 删除索引 IX_T_HomePopups_IsActive_StartTime_EndTime' END IF EXISTS (SELECT * FROM sys.indexes WHERE name = 'IX_T_HomePopups_SortOrder') BEGIN DROP INDEX IX_T_HomePopups_SortOrder ON T_HomePopups; PRINT '✓ 删除索引 IX_T_HomePopups_SortOrder' END -- 删除表 IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'T_HomePopups') BEGIN DROP TABLE T_HomePopups; PRINT '✓ 删除 T_HomePopups 表' END -- ======================================== -- 5. 验证回滚结果 -- ======================================== PRINT '正在验证回滚结果...' -- 验证 T_HomePopups 表已删除 IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'T_HomePopups') PRINT '✓ T_HomePopups 表删除验证通过' ELSE PRINT '✗ T_HomePopups 表删除验证失败' -- 验证约束恢复 IF EXISTS (SELECT * FROM sys.check_constraints WHERE name = 'CK_T_Banners_LinkType' AND definition NOT LIKE '%[LinkType]=(4)%') PRINT '✓ T_Banners LinkType 约束恢复验证通过' ELSE PRINT '✗ T_Banners LinkType 约束恢复验证失败' -- 验证字典数据删除 IF NOT EXISTS (SELECT * FROM sys_dict_type WHERE DictType = 'liveforum_popup_linktype') PRINT '✓ 弹窗链接类型字典删除验证通过' ELSE PRINT '✗ 弹窗链接类型字典删除验证失败' -- ======================================== -- 回滚完成 -- ======================================== PRINT '' PRINT '=========================================' PRINT 'v1.0.1 数据库回滚脚本执行完成!' PRINT '完成时间: ' + CONVERT(VARCHAR, GETDATE(), 120) PRINT '=========================================' PRINT '' PRINT '回滚内容总结:' PRINT '1. ✓ 删除首页弹窗表 T_HomePopups' PRINT '2. ✓ 删除相关索引' PRINT '3. ✓ 恢复 T_Banners 表原始约束' PRINT '4. ✓ 删除弹窗链接类型字典' PRINT '5. ✓ 删除 Banner 字典中的通知详情选项' PRINT '' PRINT '注意事项:' PRINT '- 数据库已回滚到 v1.0.1 之前的状态' PRINT '- 请确保应用程序代码也同步回滚' PRINT '- 所有相关的弹窗数据已被删除' PRINT '========================================='