作者:惬听风吟jyy_802 | 2023-09-02 20:15
1> DHornpout..:
我也为我的工作遇到了这个问题.我的解决方案是#2.
这是我的步骤(我正在使用SQL Server 2005):
1)使用默认值将列添加到表中:
ALTER TABLE MyTable ADD MyColumn varchar(40) DEFAULT('')
2)NOT NULL
使用NOCHECK
选项添加约束.该NOCHECK
不会对现有值执行:
ALTER TABLE MyTable WITH NOCHECK
ADD CONSTRAINT MyColumn_NOTNULL CHECK (MyColumn IS NOT NULL)
3)在表格中逐步更新值:
GO
UPDATE TOP(3000) MyTable SET MyColumn = '' WHERE MyColumn IS NULL
GO 1000
update语句仅更新最多3000条记录.这允许当时保存一大块数据.我必须使用"MyColumn IS NULL",因为我的表没有序列主键.
GO 1000
将执行前一个语句1000次.这将更新300万条记录,如果您需要更多,只需增加此数字.它将继续执行,直到SQL Server返回UPDATE语句的0条记录.
我不知道你可以在GO之后输入一个数字.你改变了我的世界.
值得一提的是,MSDN强烈反对使用`WITH NOCHECK`:"如果您不想验证针对现有数据的新CHECK或FOREIGN KEY约束,请使用WITH NOCHECK.除极少数情况外,我们不建议这样做.新约束将在所有后续数据更新中进行评估.添加约束时由WITH NOCHECK抑制的任何约束违规都可能导致将来更新失败,如果他们使用不符合约束的数据更新行.
可能值得将以下内容添加到此答案的底部,以将约束标记为已检查:ALTER TABLE MyTable WITH CHECK CHECK CONSTRAINT MyColumn_NOTNULL - http://sqlblog.com/blogs/hugo_kornelis/archive/2007/03/29/can-你,信任你,constraints.aspx
此外:"查询优化器不考虑使用NOCHECK定义的约束.在使用ALTER TABLE
WITH CHECK CHECK CONSTRAINT ALL重新启用它们之前,将忽略这些约束."
[马丁史密斯显示为什么NOCHECK在这里是一个问题](http://dba.stackexchange.com/a/48936/1186).
推荐阅读
-
如何解决《使用秒表倒计时》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《是否可以在chrome中使浏览器看起来像打印页面》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《控件模板:如何创建绑定》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《点击一个可疑的div剧照外面的焦点?》经验,为你挑选了2个好方法。 ...
[详细]
-
如何解决《箭头功能中的默认参数值》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《使用Gradle预编译JSP》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《配置Mocha来查找`.jsx`/`.es6`文件》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《即使AngularJS和PHP的凭据不正确,登录仍然会指示》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《可以在PHP7下运行symfony1.4吗?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《如何在PHP页面上从orientdb访问数据?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《在哪里可以找到已翻译的LinqtoEntity查询到Sql》经验,为你挑选了2个好方法。 ...
[详细]
-
如何解决《django在已清理的数据上形成预取》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《在Unity插件中使用androidjar中的context.getClassLoader.getResaurceAsStream无法访问图像》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《mvnrelease:在java8中执行失败-添加了javadoc插件》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《使用数组值将数组转换为不同的结构》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《"使用HttpClient根据验证程序,远程证书无效"》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《awk在输出中打印一个额外的行{print$x}》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《如何为qtcreator编写调试助手?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《Angularui-router:按下浏览器中的后退按钮,停止控制器重新加载》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《为什么不能在编译时解决运行时多态?》经验,为你挑选了5个好方法。 ...
[详细]
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!