多项目共用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
相关推荐
写后端的胖头鱼3 小时前
【高频面试题】FullText 全文索引(MySQL)
数据库·mysql·索引·全文索引
路远的数据库笔记4 小时前
SQL Server迁移国产数据库怎么做?九套口岸库零停机割接实战
数据库·经验分享·sqlserver·dba
樱花落木兰4 小时前
分布式登录实战:Session 会话共享改造,Redis 存储用户登录状态
java·javascript·数据库·redis·分布式·缓存
kaiyou20264 小时前
用户研究岗秋招,统计分析能力怎么学习和证明?
数据库·python·学习
mjhcsp4 小时前
DeepSeek V4.1 Flash 批量处理效能实测
java·前端·数据库
ShineWinsu4 小时前
对于Redis:Steam、Geospatial、Hyperloglog、Bitmap、Bitfield类型的解析
数据库·c++·redis·分布式·缓存·面试·zset
lie..5 小时前
30天从零开始学AI应用开发(Day 17):ChromaDB 上手:给本地文档建一个“外挂大脑”
数据库·人工智能·oracle
code_whiter5 小时前
01-MySQL数据库基础
数据库·mysql
weixin_382395235 小时前
本地部署 ERP 选型记录:从 Excel 到轻量系统的这几年
数据库·人工智能·数据挖掘
2401_891409266 小时前
期货量化用得上的几类行情数据:逐笔、Level2、分钟线和五档tick
数据库