作为一名.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个表增加新字段的操作,以后在数据库中的编程可以多研究了,很有趣。

SQL server 为多个表添加新的列的更多相关文章

  1. SQL SERVER 2008 在某表中新增一列时失败

    背景:新增列语句如:“alter table 表名 add 列名 float default 0 with values”(用VS2010做网站,这句话是在C#代码里执行的) 报错提示: 警告: 已经 ...

  2. SQL SERVER 表添加新字段

    SQL SERVER 表添加新字段 ALTER TABLE doc_exa ADD column_b VARCHAR(20) NULL; -- doc_exa 是表名 -- column_b 是新加的 ...

  3. SQL Server 2017 SELECT…INTO 创建的新表指定到文件组

    原文:SQL Server 2017 SELECT-INTO 创建的新表指定到文件组 SELECT-INTO 在 SQL Server 中也是常见的一个功能,过去用此方法创建的新表只能存储到默认的文件 ...

  4. Sql Server系列:数据表操作

    表是用来存储数据和操作数据的逻辑结构,用来组织和存储数据,关系数据库中的所有数据都表现为表的形式,数据表由行和列组成.SQL Server中的数据表分为临时表和永久表,临时表存储在tempdb系统数据 ...

  5. 把sql server 2000的用户表的所有者改成dbo

    怎么样把sql server 2000的用户表的所有者,改成dbo,而不是用户名. 推荐使用下面介绍的第二种方法,执行以下查询便可以了.sp_configure 'allow updates','1' ...

  6. SQL Server 2008 无法保存表的更改

    MS SQL Server 2008 在建完表后,如果要重新设计表,如修改字段长度,就会提示:“当用户在在SQL Server 2008企业管理器中更改表结构时,必须要先删除原来的表,然后重新创建新表 ...

  7. MS SQL SERVER 中的系统表

    MS SQL SERVER 中的系统表 序号 名称 说明 备注 1 syscolumns 每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行.   2 syscomments 包含每 ...

  8. SQL Server 2014内存优化表的使用场景

    SQL Server 2014内存优化表的使用场景 最近一个朋友找到走起君,咨询走起君内存优化表如何做高可用的问题 大家知道,内存优化表是从SQL Server 2014开始引入,可能大家对内存优化表 ...

  9. Sql server中如何将表A和表B的数据合并(乘积方式)

    sql server中如何将表A 和表B的数据合并成乘积方式,也就是说表A有2条数据,表B有3条数据,乘积后有6条数据, 这就要用到sql中的笛卡尔积方式了 1.什么是笛卡尔积 笛卡尔积在SQL中的实 ...

随机推荐

  1. [译]rabbitmq 2.2 Building from the bottom: queues

    我对rabbitmq学习还不深入,这些翻译仅仅做资料保存,希望不要误导大家. You have consumers and producers under your belt, and now you ...

  2. shell 与用户交互

    bash shell如何获取命令行参数(添加到命令后的数据).命令行选项(确定命令行为的英文字母).键盘输入数据? 操作命令行参数 1 读取参数 bash shell用位置参数变量(positiona ...

  3. 2 通过JNI混合使用Java和C++ -----> 访问数组

    关于c和cpp实现native方法的一些注释: 1>  在jni.h中首先定义了C的实现方式,然后用内联函数实现了Cpp的实现方式,如下所示: const char* GetStringUTFC ...

  4. 关于SVN 目录结构,使用教程

    SVN使用教程:http://www.cnblogs.com/armyfai/p/3985660.html Subversion有一个很标准的目录结构,是这样的.比如项目是proj,svn地址为svn ...

  5. C++设计模式——工厂方法模式

    本文版权归果冻说所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利.» 本文链接:http://www.jellythink.com/arch ...

  6. Ionic 2 Guide

    Ionic 2 Guide 最近一直没更新博客,业余时间都在翻译Ionic2的文档.之前本来是想写一个入门,后来觉得干脆把官方文档翻译一下算了,因为官方文档就是最好的入门教程.后来越翻译越觉得这个事情 ...

  7. Linux下各硬件装置的文件名

    Linux对计算机各组件/装置的分辨,是和Windows系统完全不一样的!因为各个组件/设备在Linux上都是一个文件!因此,我们在认识各项设备时一定要学习Linux的设备文件名. 众所周知,Linu ...

  8. Windows8 各种版本区别对比详解

    微软的 Windows8 操作系统提供了4个不同的版本,分别是 Windows RT.Windows 8 标准版.Windows 8 Pro 专业版 以及 Windows 8 Enterprise 企 ...

  9. Mac下安装及配置Eclipse

    1.安装Eclipse前先确认你的Mac上是否已安装java运行环境.进入终端,输入”java -version”,如果返回了java版本号则说明已安装,否则,请先安装java运行环境: 2.访问ec ...

  10. Readhat Linux5.5 安装SVNService(经验总结)

    Subversion独立服务和与apache整合服务. 一 .Svn独立服务安装 操作系统: Redhat Linux5.5 安装包获取: 下载 http://subversion.tigris.or ...