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个表增加新字段的操作,以后在数据库中的编程可以多研究了,很有趣。
posted @ 2013-08-01 17:54  蘑菇肉片  阅读(1502)  评论(0编辑  收藏  举报