127 lines
4.7 KiB
SQL
127 lines
4.7 KiB
SQL
-- ========================================
|
||
-- 团播机构 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 '=========================================' |