145 lines
5.7 KiB
MySQL
145 lines
5.7 KiB
MySQL
|
|
-- =============================================
|
|||
|
|
-- 材料仓库管理与管线划分优化 - 数据库变更脚本
|
|||
|
|
-- 生成时间: 2026-03-05
|
|||
|
|
-- 说明: 请在执行前备份数据库
|
|||
|
|
-- =============================================
|
|||
|
|
|
|||
|
|
-- =============================================
|
|||
|
|
-- 第一部分: 创建材料仓库表
|
|||
|
|
-- =============================================
|
|||
|
|
|
|||
|
|
-- 检查表是否存在,如果存在则删除(仅用于开发环境)
|
|||
|
|
-- IF OBJECT_ID('dbo.Base_Warehouse', 'U') IS NOT NULL
|
|||
|
|
-- DROP TABLE dbo.Base_Warehouse;
|
|||
|
|
-- GO
|
|||
|
|
|
|||
|
|
-- 创建材料仓库表
|
|||
|
|
CREATE TABLE dbo.Base_Warehouse (
|
|||
|
|
WarehouseId NVARCHAR(50) NOT NULL,
|
|||
|
|
WarehouseName NVARCHAR(200) NOT NULL,
|
|||
|
|
Remark NVARCHAR(500) NULL,
|
|||
|
|
ProjectId NVARCHAR(50) NOT NULL,
|
|||
|
|
CreateUserId NVARCHAR(50) NULL,
|
|||
|
|
CreateTime DATETIME NULL,
|
|||
|
|
ModifyUserId NVARCHAR(50) NULL,
|
|||
|
|
ModifyTime DATETIME NULL,
|
|||
|
|
CONSTRAINT PK_Base_Warehouse PRIMARY KEY CLUSTERED (WarehouseId ASC),
|
|||
|
|
CONSTRAINT FK_Base_Warehouse_Project FOREIGN KEY (ProjectId)
|
|||
|
|
REFERENCES dbo.Project_Project (ProjectId)
|
|||
|
|
ON DELETE NO ACTION
|
|||
|
|
);
|
|||
|
|
GO
|
|||
|
|
|
|||
|
|
-- 创建索引以提升查询性能
|
|||
|
|
CREATE NONCLUSTERED INDEX IX_Base_Warehouse_ProjectId
|
|||
|
|
ON dbo.Base_Warehouse(ProjectId);
|
|||
|
|
GO
|
|||
|
|
|
|||
|
|
CREATE NONCLUSTERED INDEX IX_Base_Warehouse_WarehouseName
|
|||
|
|
ON dbo.Base_Warehouse(WarehouseName);
|
|||
|
|
GO
|
|||
|
|
|
|||
|
|
-- 添加表说明
|
|||
|
|
EXEC sys.sp_addextendedproperty
|
|||
|
|
@name=N'MS_Description',
|
|||
|
|
@value=N'材料仓库基础信息表' ,
|
|||
|
|
@level0type=N'SCHEMA',
|
|||
|
|
@level0name=N'dbo',
|
|||
|
|
@level1type=N'TABLE',
|
|||
|
|
@level1name=N'Base_Warehouse';
|
|||
|
|
GO
|
|||
|
|
|
|||
|
|
-- 添加字段说明
|
|||
|
|
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'仓库ID(主键)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_Warehouse', @level2type=N'COLUMN',@level2name=N'WarehouseId';
|
|||
|
|
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'仓库名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_Warehouse', @level2type=N'COLUMN',@level2name=N'WarehouseName';
|
|||
|
|
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'备注' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_Warehouse', @level2type=N'COLUMN',@level2name=N'Remark';
|
|||
|
|
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'项目ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_Warehouse', @level2type=N'COLUMN',@level2name=N'ProjectId';
|
|||
|
|
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'创建人ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_Warehouse', @level2type=N'COLUMN',@level2name=N'CreateUserId';
|
|||
|
|
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'创建时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_Warehouse', @level2type=N'COLUMN',@level2name=N'CreateTime';
|
|||
|
|
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'修改人ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_Warehouse', @level2type=N'COLUMN',@level2name=N'ModifyUserId';
|
|||
|
|
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'修改时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_Warehouse', @level2type=N'COLUMN',@level2name=N'ModifyTime';
|
|||
|
|
GO
|
|||
|
|
|
|||
|
|
PRINT '材料仓库表创建完成';
|
|||
|
|
GO
|
|||
|
|
|
|||
|
|
-- =============================================
|
|||
|
|
-- 第二部分: 为管线表添加仓库字段
|
|||
|
|
-- =============================================
|
|||
|
|
|
|||
|
|
-- 检查字段是否已存在
|
|||
|
|
IF NOT EXISTS (
|
|||
|
|
SELECT 1 FROM sys.columns
|
|||
|
|
WHERE object_id = OBJECT_ID('dbo.HJGL_Pipeline')
|
|||
|
|
AND name = 'WarehouseId'
|
|||
|
|
)
|
|||
|
|
BEGIN
|
|||
|
|
-- 添加 WarehouseId 字段(允许NULL以兼容现有数据)
|
|||
|
|
ALTER TABLE dbo.HJGL_Pipeline
|
|||
|
|
ADD WarehouseId NVARCHAR(50) NULL;
|
|||
|
|
GO
|
|||
|
|
|
|||
|
|
-- 添加字段说明
|
|||
|
|
EXEC sys.sp_addextendedproperty
|
|||
|
|
@name=N'MS_Description',
|
|||
|
|
@value=N'仓库ID(关联Base_Warehouse表)' ,
|
|||
|
|
@level0type=N'SCHEMA',
|
|||
|
|
@level0name=N'dbo',
|
|||
|
|
@level1type=N'TABLE',
|
|||
|
|
@level1name=N'HJGL_Pipeline',
|
|||
|
|
@level2type=N'COLUMN',
|
|||
|
|
@level2name=N'WarehouseId';
|
|||
|
|
GO
|
|||
|
|
|
|||
|
|
-- 添加外键约束(可选,根据实际需求决定是否启用)
|
|||
|
|
-- ALTER TABLE dbo.HJGL_Pipeline
|
|||
|
|
-- ADD CONSTRAINT FK_HJGL_Pipeline_Warehouse
|
|||
|
|
-- FOREIGN KEY (WarehouseId)
|
|||
|
|
-- REFERENCES dbo.Base_Warehouse(WarehouseId)
|
|||
|
|
-- ON DELETE SET NULL;
|
|||
|
|
-- GO
|
|||
|
|
|
|||
|
|
PRINT '管线表WarehouseId字段添加完成';
|
|||
|
|
END
|
|||
|
|
ELSE
|
|||
|
|
BEGIN
|
|||
|
|
PRINT '管线表WarehouseId字段已存在,跳过添加';
|
|||
|
|
END
|
|||
|
|
GO
|
|||
|
|
|
|||
|
|
-- =============================================
|
|||
|
|
-- 第三部分: 验证脚本
|
|||
|
|
-- =============================================
|
|||
|
|
|
|||
|
|
-- 验证表和字段创建成功
|
|||
|
|
SELECT
|
|||
|
|
'Base_Warehouse表' AS 对象类型,
|
|||
|
|
CASE WHEN EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Base_Warehouse')
|
|||
|
|
THEN '已创建 ✓'
|
|||
|
|
ELSE '未创建 ✗'
|
|||
|
|
END AS 状态;
|
|||
|
|
|
|||
|
|
SELECT
|
|||
|
|
'HJGL_Pipeline.WarehouseId字段' AS 对象类型,
|
|||
|
|
CASE WHEN EXISTS (
|
|||
|
|
SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
|
|||
|
|
WHERE TABLE_NAME = 'HJGL_Pipeline'
|
|||
|
|
AND COLUMN_NAME = 'WarehouseId'
|
|||
|
|
)
|
|||
|
|
THEN '已添加 ✓'
|
|||
|
|
ELSE '未添加 ✗'
|
|||
|
|
END AS 状态;
|
|||
|
|
GO
|
|||
|
|
|
|||
|
|
PRINT '========================================';
|
|||
|
|
PRINT '数据库变更脚本执行完成!';
|
|||
|
|
PRINT '========================================';
|
|||
|
|
PRINT '';
|
|||
|
|
PRINT '重要提示:';
|
|||
|
|
PRINT '1. 请在生产环境执行前备份数据库';
|
|||
|
|
PRINT '2. 建议在维护窗口执行ALTER TABLE操作';
|
|||
|
|
PRINT '3. 现有管线数据的WarehouseId默认为NULL';
|
|||
|
|
PRINT '4. 可通过批量设置功能逐步完善数据';
|
|||
|
|
PRINT '========================================';
|
|||
|
|
GO
|