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;
|