当有多个项目,每个项目均有一个相同的表,当多个项目共同使用同一套代码时,有一天需求增加了字段,如何保证其他项目不报错
解决方案
-- 添加高温字段(带存在性检查)
IF NOT EXISTS (SELECT * FROM sys.columns
WHERE object_id = OBJECT_ID(N'sys_barninfo')
AND name = 'HighTemperature')
BEGIN
ALTER TABLE sys_barninfo ADD HighTemperature DECIMAL(5,1) NULL;
IF NOT EXISTS (SELECT * FROM sys.extended_properties
WHERE major_id = OBJECT_ID(N'sys_barninfo')
AND minor_id = COLUMNPROPERTY(OBJECT_ID(N'sys_barninfo'), 'HighTemperature', 'ColumnId')
AND name = N'MS_Description')
BEGIN
EXEC sys.sp_addextendedproperty
@name = N'MS_Description',
@value = N'高温值,精确到小数点后一位',
@level0type = N'SCHEMA', @level0name = 'dbo',
@level1type = N'TABLE', @level1name = 'sys_barninfo',
@level2type = N'COLUMN', @level2name = 'HighTemperature';
END
END
-- 添加低温字段(带存在性检查)
IF NOT EXISTS (SELECT * FROM sys.columns
WHERE object_id = OBJECT_ID(N'sys_barninfo')
AND name = 'LowTemperature')
BEGIN
ALTER TABLE sys_barninfo ADD LowTemperature DECIMAL(5,1) NULL;
IF NOT EXISTS (SELECT * FROM sys.extended_properties
WHERE major_id = OBJECT_ID(N'sys_barninfo')
AND minor_id = COLUMNPROPERTY(OBJECT_ID(N'sys_barninfo'), 'LowTemperature', 'ColumnId')
AND name = N'MS_Description')
BEGIN
EXEC sys.sp_addextendedproperty
@name = N'MS_Description',
@value = N'低温值,精确到小数点后一位',
@level0type = N'SCHEMA', @level0name = 'dbo',
@level1type = N'TABLE', @level1name = 'sys_barninfo',
@level2type = N'COLUMN', @level2name = 'LowTemperature';
END
END