8efe030f47
为收敛当前分支代码范围并统一人员服务目录,移除历史模块与静态资源,减少无效代码和目录分散带来的维护成本。
160 lines
7.4 KiB
Transact-SQL
160 lines
7.4 KiB
Transact-SQL
/*
|
||
清理范围:HSSE/InformationProject。
|
||
说明:数据库已由用户提前备份,本脚本不重复备份;脚本在事务中删除菜单、权限、视图和专属业务表。
|
||
保留:InformationProject_Notice、InformationProject_Picture、
|
||
InformationProject_ProjectMap、InformationProject_ReceiveFileManager;
|
||
HSSE/Law 现行法律法规库及其共享表 Law_LawRegulationSelectedItem。
|
||
*/
|
||
SET NOCOUNT ON;
|
||
SET XACT_ABORT ON;
|
||
|
||
BEGIN TRY
|
||
BEGIN TRANSACTION;
|
||
|
||
DECLARE @MenuIds TABLE (MenuId nvarchar(50) NOT NULL PRIMARY KEY);
|
||
INSERT INTO @MenuIds (MenuId)
|
||
VALUES
|
||
-- 法律法规及标准规范辨识
|
||
(N'A0D8A8F7-EF3A-4F81-B9C1-F9F2ECD63360'),
|
||
(N'C85CCDFC-E721-4B9D-B73F-F83C7578EE9B'),
|
||
(N'28B0235F-3DB5-4C15-A7E3-6F5DF52C8FDC'),
|
||
-- 集团安全报表
|
||
(N'C554E471-B740-4559-B543-E00F247289FD'),
|
||
(N'6E7DC075-A7AF-4E42-8F8B-0174EFDD54A1'),
|
||
(N'38E948BA-E043-4E89-9038-0CE1B508FA19'),
|
||
(N'0CDFC1BE-0796-4817-ADB8-7A0B48655E00'),
|
||
(N'0973EE1C-CD2A-4116-BD67-1ABAD71D6C7C'),
|
||
(N'FB174DD6-CBAE-43AF-9356-B098A17B719D'),
|
||
(N'FD572EFA-8E87-43D1-B514-25A39768106F');
|
||
|
||
/* 菜单相关流程、按钮权限和角色权限先于菜单删除。 */
|
||
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'HSSE/InformationProject/%';
|
||
|
||
/* 视图先删除;选中项视图先于辨识视图,避免视图之间存在依赖。 */
|
||
IF OBJECT_ID(N'dbo.View_InformationProject_ConstructionStandardSelectedItem', N'V') IS NOT NULL
|
||
DROP VIEW dbo.View_InformationProject_ConstructionStandardSelectedItem;
|
||
IF OBJECT_ID(N'dbo.View_InformationProject_ConstructionStandardIdentify', N'V') IS NOT NULL
|
||
DROP VIEW dbo.View_InformationProject_ConstructionStandardIdentify;
|
||
|
||
/* 明细表先删,再删除 InformationProject 专属主表。 */
|
||
IF OBJECT_ID(N'dbo.InformationProject_AccidentCauseReportItem', N'U') IS NOT NULL
|
||
DROP TABLE dbo.InformationProject_AccidentCauseReportItem;
|
||
IF OBJECT_ID(N'dbo.InformationProject_ConstructionStandardSelectedItem', N'U') IS NOT NULL
|
||
DROP TABLE dbo.InformationProject_ConstructionStandardSelectedItem;
|
||
IF OBJECT_ID(N'dbo.InformationProject_DrillConductedQuarterlyReportItem', N'U') IS NOT NULL
|
||
DROP TABLE dbo.InformationProject_DrillConductedQuarterlyReportItem;
|
||
IF OBJECT_ID(N'dbo.InformationProject_DrillPlanHalfYearReportItem', N'U') IS NOT NULL
|
||
DROP TABLE dbo.InformationProject_DrillPlanHalfYearReportItem;
|
||
|
||
IF OBJECT_ID(N'dbo.InformationProject_AccidentCauseReport', N'U') IS NOT NULL
|
||
DROP TABLE dbo.InformationProject_AccidentCauseReport;
|
||
IF OBJECT_ID(N'dbo.InformationProject_ConstructionStandardIdentify', N'U') IS NOT NULL
|
||
DROP TABLE dbo.InformationProject_ConstructionStandardIdentify;
|
||
IF OBJECT_ID(N'dbo.InformationProject_DrillConductedQuarterlyReport', N'U') IS NOT NULL
|
||
DROP TABLE dbo.InformationProject_DrillConductedQuarterlyReport;
|
||
IF OBJECT_ID(N'dbo.InformationProject_DrillPlanHalfYearReport', N'U') IS NOT NULL
|
||
DROP TABLE dbo.InformationProject_DrillPlanHalfYearReport;
|
||
IF OBJECT_ID(N'dbo.InformationProject_EPSummaryReport', N'U') IS NOT NULL
|
||
DROP TABLE dbo.InformationProject_EPSummaryReport;
|
||
IF OBJECT_ID(N'dbo.InformationProject_MillionsMonthlyReport', N'U') IS NOT NULL
|
||
DROP TABLE dbo.InformationProject_MillionsMonthlyReport;
|
||
IF OBJECT_ID(N'dbo.InformationProject_SafetyQuarterlyReport', N'U') IS NOT NULL
|
||
DROP TABLE dbo.InformationProject_SafetyQuarterlyReport;
|
||
IF OBJECT_ID(N'dbo.InformationProject_WorkSummaryReport', N'U') IS NOT NULL
|
||
DROP TABLE dbo.InformationProject_WorkSummaryReport;
|
||
|
||
/* Law_LawRegulationSelectedItem 同时服务现行法规库和旧项目辨识;只清除旧辨识关系数据。 */
|
||
DELETE FROM dbo.Law_LawRegulationSelectedItem
|
||
WHERE LawRegulationIdentifyId IS NOT NULL;
|
||
|
||
IF EXISTS
|
||
(
|
||
SELECT 1
|
||
FROM sys.foreign_keys
|
||
WHERE name = N'FK_Law_LawRegulationSelectedItem_Law_LawRegulationIdentify'
|
||
)
|
||
ALTER TABLE dbo.Law_LawRegulationSelectedItem
|
||
DROP CONSTRAINT FK_Law_LawRegulationSelectedItem_Law_LawRegulationIdentify;
|
||
|
||
IF OBJECT_ID(N'dbo.Law_LawRegulationIdentify', N'U') IS NOT NULL
|
||
DROP TABLE dbo.Law_LawRegulationIdentify;
|
||
|
||
COMMIT TRANSACTION;
|
||
|
||
/* 删除结果:以下对象均应为 0。 */
|
||
SELECT v.ObjectName,
|
||
CASE WHEN OBJECT_ID(N'dbo.' + v.ObjectName, v.ObjectType) IS NULL THEN 0 ELSE 1 END AS ExistsFlag
|
||
FROM
|
||
(
|
||
VALUES
|
||
(N'InformationProject_AccidentCauseReportItem', N'U'),
|
||
(N'InformationProject_ConstructionStandardSelectedItem', N'U'),
|
||
(N'InformationProject_DrillConductedQuarterlyReportItem', N'U'),
|
||
(N'InformationProject_DrillPlanHalfYearReportItem', N'U'),
|
||
(N'InformationProject_AccidentCauseReport', N'U'),
|
||
(N'InformationProject_ConstructionStandardIdentify', N'U'),
|
||
(N'InformationProject_DrillConductedQuarterlyReport', N'U'),
|
||
(N'InformationProject_DrillPlanHalfYearReport', N'U'),
|
||
(N'InformationProject_EPSummaryReport', N'U'),
|
||
(N'InformationProject_MillionsMonthlyReport', N'U'),
|
||
(N'InformationProject_SafetyQuarterlyReport', N'U'),
|
||
(N'InformationProject_WorkSummaryReport', N'U'),
|
||
(N'Law_LawRegulationIdentify', N'U'),
|
||
(N'View_InformationProject_ConstructionStandardSelectedItem', N'V'),
|
||
(N'View_InformationProject_ConstructionStandardIdentify', N'V')
|
||
) v(ObjectName, ObjectType);
|
||
|
||
/* 保留结果:以下对象均应为 1。 */
|
||
SELECT v.ObjectName,
|
||
CASE WHEN OBJECT_ID(N'dbo.' + v.ObjectName, v.ObjectType) IS NULL THEN 0 ELSE 1 END AS ExistsFlag
|
||
FROM
|
||
(
|
||
VALUES
|
||
(N'InformationProject_Notice', N'U'),
|
||
(N'InformationProject_Picture', N'U'),
|
||
(N'InformationProject_ProjectMap', N'U'),
|
||
(N'InformationProject_ReceiveFileManager', N'U'),
|
||
(N'Law_HSSEStandardsList', N'U'),
|
||
(N'Law_LawRegulationList', N'U'),
|
||
(N'Law_LawRegulationSelectedItem', N'U'),
|
||
(N'Law_ManageRule', N'U'),
|
||
(N'Law_RulesRegulations', N'U')
|
||
) v(ObjectName, ObjectType);
|
||
|
||
/* 菜单和权限残留均应为 0。 */
|
||
SELECT N'Sys_Menu' AS ObjectName, COUNT_BIG(*) AS Records
|
||
FROM dbo.Sys_Menu
|
||
WHERE MenuId IN (SELECT MenuId FROM @MenuIds)
|
||
OR Url LIKE N'HSSE/InformationProject/%'
|
||
UNION ALL
|
||
SELECT N'Sys_MenuFlowOperate', COUNT_BIG(*)
|
||
FROM dbo.Sys_MenuFlowOperate
|
||
WHERE MenuId IN (SELECT MenuId FROM @MenuIds)
|
||
UNION ALL
|
||
SELECT N'Sys_ButtonPower', COUNT_BIG(*)
|
||
FROM dbo.Sys_ButtonPower
|
||
WHERE MenuId IN (SELECT MenuId FROM @MenuIds)
|
||
OR ButtonToMenuId IN (SELECT MenuId FROM @MenuIds)
|
||
UNION ALL
|
||
SELECT N'Sys_RolePower', COUNT_BIG(*)
|
||
FROM dbo.Sys_RolePower
|
||
WHERE MenuId IN (SELECT MenuId FROM @MenuIds);
|
||
END TRY
|
||
BEGIN CATCH
|
||
IF XACT_STATE() <> 0
|
||
ROLLBACK TRANSACTION;
|
||
THROW;
|
||
END CATCH;
|