多项目共用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
相关推荐
Tony Bai2 分钟前
Git 即数据库:Beads (bd) —— 专为 AI Agent 打造的分布式任务追踪引擎
数据库·人工智能·分布式·git
yufuu983 分钟前
进阶技巧与底层原理
jvm·数据库·python
2301_817497333 分钟前
使用Flask快速搭建轻量级Web应用
jvm·数据库·python
xdpcxq10299 分钟前
.NET Core 双数据库 PostgreSQL 与 SQLite 和平共处
数据库·postgresql·.netcore
Apple_羊先森10 分钟前
ORACLE数据库巡检SQL脚本--13、临时表空间使用率
数据库·sql·oracle
数据知道17 分钟前
PostgreSQL 核心原理:如何防止事务ID回卷?(Wraparound)
数据库·postgresql
FreeBuf_18 分钟前
黑客攻击MongoDB实例删除数据库并植入勒索信息
数据库·mongodb
独自归家的兔18 分钟前
mycat报错:63529
数据库·开源·mycat
晔子yy20 分钟前
MySQL存储引擎全面解析
数据库·mysql