当前位置:  开发笔记 > 数据库 > 正文

更新用于将SQL Server中的表字段从NULL更新为非NULL的脚本

如何解决《更新用于将SQLServer中的表字段从NULL更新为非NULL的脚本》经验,为你挑选了1个好方法。

我在SQL Server数据库的表中有一个字段(比方说,foo),该表最初定义为可为空,但新要求表明此字段必须为非null.

在不删除表内容的情况下,通过更新脚本将此字段更新为非null的最佳方法是什么?我尝试从"设计"视图生成脚本,但在执行期间失败,因为表的当前内容具有foo的NULL值.更糟糕的是,如果我忽略了这个错误,它会继续删除表中的所有内容!



1> Cade Roux..:

NULL在将其NULL更改为之前,您必须在able列中为任何行设置一个值NOT NULL.

-- Clean up the data which won't comply with the schema changes
UPDATE t SET foo = 0 WHERE foo IS NULL

-- Apply the NOT NULL
ALTER TABLE t ALTER COLUMN foo int NOT NULL

-- Add a default for the future if that's what you want
ALTER TABLE t ADD CONSTRAINT t_foo_def DEFAULT 0 FOR foo

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有