临时提交
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
-- =====================================================================
|
||||
-- 安全巡检:工程名称 = 监督巡视部位,移除冗余字段 PatrolLocation
|
||||
-- 背景:`监督巡视部位` 实际取自危大超危工程(HazardProjectName),
|
||||
-- 与 `工程名称` 为同一概念。PC 端/小程序均已下拉选择危大超危工程。
|
||||
-- 原表冗余保存 PatrolLocation,且其值恒等于 HazardProjectName。
|
||||
-- 影响:本脚本删除 dbo.HSSE_SafetyPatrol.PatrolLocation 列。
|
||||
-- 因该列历史值与 HazardProjectName 相同,删除不丢失有效信息。
|
||||
-- 执行前请先备份数据库。
|
||||
-- =====================================================================
|
||||
|
||||
USE [SGGLDB]
|
||||
GO
|
||||
|
||||
-- 1) 校验:该列是否与工程名称冗余(值均等于 HazardProjectName);如返回 >0 请先人工确认
|
||||
SELECT COUNT(*) AS OTHERS
|
||||
FROM dbo.HSSE_SafetyPatrol
|
||||
WHERE ISNULL(PatrolLocation, '') <> ISNULL(HazardProjectName, '')
|
||||
|
||||
-- 2) 动态删除该列上的默认值约束(如存在)
|
||||
GO
|
||||
DECLARE @df NVARCHAR(200)
|
||||
SELECT @df = dc.name
|
||||
FROM sys.default_constraints dc
|
||||
INNER JOIN sys.columns c ON c.object_id = dc.parent_object_id AND c.column_id = dc.parent_column_id
|
||||
WHERE dc.parent_object_id = OBJECT_ID('dbo.HSSE_SafetyPatrol') AND c.name = 'PatrolLocation'
|
||||
IF @df IS NOT NULL
|
||||
BEGIN
|
||||
EXEC(N'ALTER TABLE [dbo].[HSSE_SafetyPatrol] DROP CONSTRAINT [' + @df + N']')
|
||||
END
|
||||
|
||||
-- 3) 删除冗余列
|
||||
GO
|
||||
ALTER TABLE [dbo].[HSSE_SafetyPatrol]
|
||||
DROP COLUMN [PatrolLocation]
|
||||
GO
|
||||
Reference in New Issue
Block a user