`
zhang_215
  • 浏览: 14018 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

SQL Server 大表加非空字段

阅读更多
对于千万级以上的大表加非空的字段有三种方法:

1.直接加非空有默认值
ALTER TABLE dbo.TableA ADD Column_1 money NOT NULL CONSTRAINT DF_TableA_Column_1 DEFAULT 0
缺点:不能预估执行时间,执行时会锁住表,如果执行很久的话要考虑对生产环境的影响。
2.加运行为空;
  然后分批次更新为默认值;
  最后更改字段为非空有默认值

3.建立一个与原表TableA同样构架的表TableB,TableB加上非空有默认值的字段;
  TableB中插入数据;
  原表A重命名为其他表明(如TableA@20130901),TableB重命名为TableA。
优点:选项3,这可能是最好的,因为你仍然可以在数据库中“活”的,而这个操作是怎么回事。 如果您使用选项1,

表被锁定的操作发生时,那么你就真的坚持。

如有其他更好方法,欢迎留言。
0
2
分享到:
评论

相关推荐

    sql server字符串非空判断实现方法

    set @sql=” –distinct select @sql=@sql+ 颜色+’,’ from ( select distinct 颜色 from yourtablename where 井号=@井号 and 层位=@层位 and 颜色 is not null ) aa set @sql=substring(@sql,1,len(@sql)-1)

    SQL Server如何保证可空字段中非空值唯一

    今天同学向我提了一个问题,我觉得蛮有意思,现记录下来大家探讨下。问题是:在一个表里面,有一个允许为空的字段,空是可以重复的,但是不为空的值需要唯一。

    用sql命令修改数据表中的一个字段为非空(not null)的语句

    ALTER TABLE table1 ALTER COLUMN ... 您可能感兴趣的文章:sql server建库、建表、建约束技巧mysql建库时提示Specified key was too long max key length is 1000 bytes的问题的解决方法Mysql 建库建表技巧分享SQL S

    精通SQL--结构化查询语言详解

    2.1.1 sql server的结构 21 2.1.2 数据库访问标准化接口—odbc 22 2.1.3 使用查询分析器执行sql语句 22 2.2 transact-sql 24 2.2.1 transact-sql 概述 24 2.2.2 transact-sql的主要组成 25 2.2.3 transact-sql...

    程序员的SQL金典.rar

     10.4.2 MS SQL Server中的自动增长字段  10.4.3 Oracle中的自动增长字段  10.4.4 DB2中的自动增长字段  10.5 业务主键与逻辑主键  10.6 NULL的学问  10.6.1 NULL与比较运算符  10.6.2 NULL和计算字段  ...

    精通SQL 结构化查询语言详解

    18.4.2 SQL Server中表级锁的使用  18.4.3 设置隔离级别实现并发控制 18.4.4 死锁及其预防  18.5 Oracle中的并发事务控制  18.5.1 通过加锁避免写数据丢失 18.5.2 设置只读事务(READ ONLY)  18.5.3 ...

    程序员的SQL金典4-8

     10.4.2 MS SQL Server中的自动增长字段  10.4.3 Oracle中的自动增长字段  10.4.4 DB2中的自动增长字段  10.5 业务主键与逻辑主键  10.6 NULL的学问  10.6.1 NULL与比较运算符  10.6.2 NULL和计算字段  ...

    实验1-大型数据库的基本操作

    4. 能够使用MS SQL SERVER的企业管理器完成数据库创建和表创建等操作。 5. 能够往表中添加数据记录。 二、实验内容 (1)创建数据库 1. 数据库名字为:abc; 2. 此数据库包含两个数据文件,其中主数据文件的逻辑...

    精通sql结构化查询语句

    4.1.1 数据表的结构 4.1.2 数据表的种类 4.2 创建数据表 4.2.1 创建数据表的语句结构 4.2.2 创建基本表 4.2.3 非空约束 4.2.4 DEFAULT指定缺省值 4.3 修改数据表 4.3.1 修改数据表的语句结构 4.3.2 给数据表增添新列...

    程序员的SQL金典6-8

     10.4.2 MS SQL Server中的自动增长字段  10.4.3 Oracle中的自动增长字段  10.4.4 DB2中的自动增长字段  10.5 业务主键与逻辑主键  10.6 NULL的学问  10.6.1 NULL与比较运算符  10.6.2 NULL和计算字段  ...

    程序员的SQL金典7-8

     10.4.2 MS SQL Server中的自动增长字段  10.4.3 Oracle中的自动增长字段  10.4.4 DB2中的自动增长字段  10.5 业务主键与逻辑主键  10.6 NULL的学问  10.6.1 NULL与比较运算符  10.6.2 NULL和计算字段  ...

    程序员的SQL金典3-8

     10.4.2 MS SQL Server中的自动增长字段  10.4.3 Oracle中的自动增长字段  10.4.4 DB2中的自动增长字段  10.5 业务主键与逻辑主键  10.6 NULL的学问  10.6.1 NULL与比较运算符  10.6.2 NULL和计算字段  ...

    oracle全程笔记及代码

    关系型数据库产品:Oracle(Oracle公司产品)、DB2(IBM产品)、SQL Server(微软的产品)、Sybase(赛贝斯公司产品)、MySQL(Oracle 公司产品) (2)关系模型的组成:数据结构+数据操作+数据完整性,数据结构指表、...

    基于java开发的功能强大、配置灵活的数据库之间的同步工具

    原作者:...原作者实现:目标源为 mysql 、sql server 的数据同步 新增功能:新增oracle目标库并对字段类型为非空字段,datatime格式的特殊字段处理,可选定时任务或立即执行。

    实验三 数据管理操作

    (10)在SQL Server中创建一个用户FlightUser,设置FlightUser用户对三张表都有查询权,但是该用户不能对乘客表和航班表进行增加、删除和修改记录,该用户对售票表能增加、删除和修改记录。然后用FlightUser登陆SQL ...

    数据库调试工具

    例3、[sqlserver2008]使用统计函数compute,返回多组查询结果: select name,score from 学生成绩表 order by name compute sum(score),avg(score) by name 例4、[sqlserver2008]执行多行查询语句,返回多组查询...

    C#120问(重点难点)

    答:尽可能用约束(包括CHECK、主键、唯一键、外键、非空字段)实现,这种方式的效率最好;其次用触发器,这种方式可以保证无论何种业务系统访问数据库都能维持数据库的完整性、一致性;最后再考虑用自写业务逻辑...

    网吧管理系统数据库设计报告.doc

    " "adminbar "用于存储管理员和网吧之间的信息 " "dictionary "用于存储管理员、会员、计算机的状态信息 " 5.1管理员表:admin "表名 "Admin " "列名 "数据类型(精度范围"空/非空 "约束条件/字段描 " " ") " "述 ...

    SqlSugar生成实体类Demo

    sqlsugar怎么利用t4模板生成实体类;以及sqlsugar简单的增删改查。自己整理的,方便以后查找

Global site tag (gtag.js) - Google Analytics