多项目共用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
相关推荐
【心态好不摆烂】2 分钟前
MySQL——复合查询
数据库·mysql
AC赳赳老秦6 分钟前
CSDN 技术社区数据采集:OpenClaw 抓取公开技术热帖,生成领域技术热点周报
java·大数据·前端·数据库·python·php·openclaw
瞬间&永恒~35 分钟前
【MySQL】 InnoDB 锁等待排查与并发压测实验
运维·数据库·mysql
布鲁飞丝44 分钟前
对 .NET线程 异常退出引发程序崩溃的反思
数据库·c#·.net
zcmodeltech1 小时前
智能矿井沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的感知-传输-控制一体化方案
服务器·数据库·分布式·stm32·单片机·嵌入式硬件
江晓鱼未暖2 小时前
十七、Redis 核心原理与架构详解
大数据·数据库·数据仓库·redis·缓存·架构
copyer_xyf2 小时前
PostgreSQL 做向量检索:一条单库路线
数据库·agent·nestjs
Access开发易登软件2 小时前
Access 怎么做前后端分离?用 Web API 读写 SQL Server
前端·数据库·人工智能·microsoft·excel·access
Juicedata2 小时前
腾讯云 x JuiceFS:基于 FoundationDB 的企业级统一存储实践
数据库·人工智能·科技·云计算·腾讯云
小罗水2 小时前
第13章 Redis 缓存、幂等锁与任务状态
数据库·redis·缓存