多项目共用SQL 添加需要字段

当有多个项目,每个项目均有一个相同的表,当多个项目共同使用同一套代码时,有一天需求增加了字段,如何保证其他项目不报错

解决方案

sql 复制代码
-- 添加高温字段(带存在性检查)
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
相关推荐
wyiyiyi42 分钟前
【Web后端】Django、flask及其场景——以构建系统原型为例
前端·数据库·后端·python·django·flask
天宇_任1 小时前
Mysql数据库迁移到GaussDB注意事项
数据库·mysql·gaussdb
武昌库里写JAVA4 小时前
JAVA面试汇总(四)JVM(一)
java·vue.js·spring boot·sql·学习
xiep14383335104 小时前
Ubuntu 安装带证书的 etcd 集群
数据库·etcd
Java小白程序员5 小时前
Spring Framework:Java 开发的基石与 Spring 生态的起点
java·数据库·spring
老虎06275 小时前
数据库基础—SQL语句总结及在开发时
数据库·sql·oracle
爱掘金的土拨鼠7 小时前
国产化dm数据库锁表解锁
数据库
庖丁解java7 小时前
N个Utils
数据库
Mr. zhihao8 小时前
SQL LEFT JOIN 与 WHERE 条件的隐藏坑
数据库·sql
2301_793086878 小时前
Redis 04 Reactor
数据库·redis·缓存