我开始使用数据库项目并在简单的任务中挣扎。如果我想添加一个新列,它是NOT NULL
,如果表中已经有数据,我该如何使它工作?如何添加NOT NULL列?
我以前写差异的脚本,在这样我会写类似的情况:
-- ... ADD COLUMN X ...
-- insert data into x
-- ... ALTER COLUMN X NOT NULL
我怎么会需要处理这样的情况下与数据库项目?
THX任何的窍门 sl3dg3
我开始使用数据库项目并在简单的任务中挣扎。如果我想添加一个新列,它是NOT NULL
,如果表中已经有数据,我该如何使它工作?如何添加NOT NULL列?
我以前写差异的脚本,在这样我会写类似的情况:
-- ... ADD COLUMN X ...
-- insert data into x
-- ... ALTER COLUMN X NOT NULL
我怎么会需要处理这样的情况下与数据库项目?
THX任何的窍门 sl3dg3
我终于找到了两种可能的方法。简而言之:
或者
这里找到:http://social.msdn.microsoft.com/Forums/en-US/vstsdb/thread/49bf2a88-d80d-4a9f-970e-728bd530332e/
两者意味着额外的工作,我希望从这种常见情况的框架更多的支持。但至少可以这样做。
您可以通过在创建列提供了一些默认值添加NOT NULL列。
你的意思是默认约束?然后用它做什么,在第二步中删除它?我一般不会使用默认值,因为我认为它们是邪恶的。编写适当的默认值由应用程序决定。 – sl3dg3 2012-07-27 08:02:31
您也可以从发布数据库对话框中,而不是为该列指定DEFAULT值;进入高级 - >高级部署选项并选中“生成智能默认值”框。
来自VS中的描述: 生成智能默认值:当更新包含不允许空值的列的数据的表时,自动提供默认值。
如果目标表被其他许多表引用,该怎么办?删除数据将头痛!因为您必须先迁移所有相关表数据,或者在从第一个表中删除数据之前取消其他表的外键约束。 – 2013-02-23 09:10:15