/* 清理范围:CQMS 材料设备验收、OfficeCheck(含 HSSE 总部检查入口)专属对象。 Map 只有文件资源,没有对应业务表;仍被定位页面使用的 File\Map 瓦片不在本脚本删除范围内。 执行前提:数据库已有备份,本脚本不重复备份。 */ SET NOCOUNT ON; SET XACT_ABORT ON; BEGIN TRY BEGIN TRANSACTION; DECLARE @MenuIds TABLE (MenuId nvarchar(36) NOT NULL PRIMARY KEY); INSERT INTO @MenuIds (MenuId) VALUES (N'751BFAB7-1589-4CCF-AF6C-85B214D94E6D'), -- CQMS 材料设备验收管理 (N'3C592866-2355-4371-9056-9BCEC405D419'), -- 材料信息 (N'BF90BB3C-13FC-4FB4-B2E2-14B81E7867F6'), -- 报验管理 (N'B16A8C24-9E20-4FF7-9781-9B69785414B9'), -- ZHGL 总部检查 (N'C502FC6D-DE43-4646-AE28-168D8C7BF4C0'), -- 检查通知单 (N'6090DD54-FE59-4011-92EE-9906C9BC69B6'), -- 发起检查 (N'C619988F-307B-4A39-B518-7F45CA7326F5'), -- 检查记录 (N'DEE90726-E00D-462B-A4BF-7E36180DD5B8'), -- 项目绩效评价 (N'80F786CB-E8CA-44AD-A08C-8E4D12BFDCA1'); -- HSSE 总部检查 DELETE FROM dbo.Sys_MenuFlowOperate WHERE MenuId IN (SELECT MenuId FROM @MenuIds); DELETE FROM dbo.Sys_ButtonPower WHERE MenuId IN (SELECT MenuId FROM @MenuIds) OR ButtonToMenuId IN (SELECT MenuId FROM @MenuIds); DELETE FROM dbo.Sys_RolePower WHERE MenuId IN (SELECT MenuId FROM @MenuIds); DELETE FROM dbo.Sys_Menu WHERE MenuId IN (SELECT MenuId FROM @MenuIds) OR Url LIKE N'OfficeCheck/%'; /* CQMS 材料设备验收表:先删审批子表,再删父表。 */ IF OBJECT_ID(N'dbo.Material_InspectionApprove', N'U') IS NOT NULL DROP TABLE dbo.Material_InspectionApprove; IF OBJECT_ID(N'dbo.Material_Inspection', N'U') IS NOT NULL DROP TABLE dbo.Material_Inspection; IF OBJECT_ID(N'dbo.Material_Material', N'U') IS NOT NULL DROP TABLE dbo.Material_Material; /* OfficeCheck 表:按外键从子表到父表删除。 */ IF OBJECT_ID(N'dbo.ProjectSupervision_RectifyItem', N'U') IS NOT NULL DROP TABLE dbo.ProjectSupervision_RectifyItem; IF OBJECT_ID(N'dbo.ProjectSupervision_CheckReportItem', N'U') IS NOT NULL DROP TABLE dbo.ProjectSupervision_CheckReportItem; IF OBJECT_ID(N'dbo.ProjectSupervision_Rectify', N'U') IS NOT NULL DROP TABLE dbo.ProjectSupervision_Rectify; IF OBJECT_ID(N'dbo.ProjectSupervision_CheckReport', N'U') IS NOT NULL DROP TABLE dbo.ProjectSupervision_CheckReport; IF OBJECT_ID(N'dbo.ProjectSupervision_Check1', N'U') IS NOT NULL DROP TABLE dbo.ProjectSupervision_Check1; IF OBJECT_ID(N'dbo.ProjectSupervision_CheckTable1', N'U') IS NOT NULL DROP TABLE dbo.ProjectSupervision_CheckTable1; IF OBJECT_ID(N'dbo.ProjectSupervision_CheckTeam', N'U') IS NOT NULL DROP TABLE dbo.ProjectSupervision_CheckTeam; IF OBJECT_ID(N'dbo.ProjectSupervision_CheckTemplate', N'U') IS NOT NULL DROP TABLE dbo.ProjectSupervision_CheckTemplate; IF OBJECT_ID(N'dbo.ProjectSupervision_ProjectEvaluation', N'U') IS NOT NULL DROP TABLE dbo.ProjectSupervision_ProjectEvaluation; IF OBJECT_ID(N'dbo.ProjectSupervision_CheckNotice', N'U') IS NOT NULL DROP TABLE dbo.ProjectSupervision_CheckNotice; COMMIT TRANSACTION; END TRY BEGIN CATCH IF XACT_STATE() <> 0 ROLLBACK TRANSACTION; THROW; END CATCH;