zoukankan      html  css  js  c++  java
  • SQL server 为多个表添加新的列

    作为一名.NET未入门的程序员,第一次发随笔。 

    前不久参与写的公司业务程序,目前这个程序的后期维护修复漏洞工作由我来负责。由于业务关系重大,每一步对程序代码的操作都非常谨慎,一旦操作失误,造成的损失和用户影响都是巨大的和不易恢复的。

    现在发现了一些不容易在目前程序中通过修补漏洞和代码来实现的业务逻辑,想了几个方案,最后还是决定在线上数据库中增加字段。和上级申请成功后,开始执行这个"危险的操作",但是数据库shi 做了分表的。

    以前我对数据库的操作知识仅局限于 简单的直接执行一条SQL语句。

    要完成这个为多个表增加字段的目的,靠手动添加的方式显然是不靠谱的。

    上司告诉我可以在数据库中编程来实现,以前没有做过这种操作,只得查询了一些资料,才发现原来SQL语句中,进行编程来实现一些数据库的操作,并非是一件困难的事情。

    经过测试没问题以后,并确保增加字段不会让线上庞大的数据挂掉后,开始在线上库进行增加字段操作。

    以下是成功的代码,虽然很简单,但是第一次做这样的操作,内心小小的澎湃,纪念一下

    /*
    声明变量(DECLARE):C需要增加字段的表名后缀
    分了51个表,从0开始到50
    每次循环执行一个对新表的增加列的操作(EXEC)
    */
    DECLARE @Order CHARACTER(20)
    DECLARE @NUM INT
    DECLARE @sql CHARACTER(500)
    SET @NUM = 0
    WHILE (@NUM < 51)
        BEGIN
            SET @Order = CONVERT(CHARACTER(10), @NUM)
            SET @sql = 'ALTER TABLE dbo.Chapter_'+ @Order +' ADD CpVolumeID varchar(36)'
            EXEC(@sql)
            SET @NUM = @NUM + 1
        END 

    简单的几行代码就实现了对数据库51个表增加新字段的操作,以后在数据库中的编程可以多研究了,很有趣。
  • 相关阅读:
    Java实战之03Spring-01Spring概述
    Java实战之02Hibernate-08二级缓存
    Java实战之02Hibernate-07与效率性能相关配置
    css3 移入移出动画
    ng2 搭建本地开发环境
    ng2模板语法/内置指令速查表
    node + npm 命令
    什么是作用域?什么是上下文?浅解
    get? post? put? delete? head? trace? options? http请求方法
    什么是http?
  • 原文地址:https://www.cnblogs.com/ywei221/p/3230621.html
Copyright © 2011-2022 走看看