如何添加NOT NULL列?

sl3*_*dg3 5 database-project visual-studio-2010

我开始使用数据库项目并努力完成简单的任务。如果我想添加一个新列,NOT NULL如果表中已经有数据,该如何工作?

我曾经写过diff脚本,在这种情况下,我会写一些类似的东西:

-- ... ADD COLUMN X ... 
-- insert data into x
-- ... ALTER COLUMN X NOT NULL
Run Code Online (Sandbox Code Playgroud)

我将如何使用数据库项目处理此类情况?

Thx适用于任何Tipps SL3DG3

sl3*_*dg3 5

我终于找到了两种可能的方法。简而言之:

  • 使用默认约束(如Rain所建议)
  • 在部署后脚本中填写数据,删除默认约束
  • 部署后,从源中删除默认约束

要么

  • 将部署前脚本中的表数据备份到临时表中,从目标表中删除数据
  • 在部署后脚本中,将数据移回目标表,包括新的NOT NULL-列的新数据,将表删除

在这里找到:http : //social.msdn.microsoft.com/Forums/en-US/vstsdb/thread/49bf2a88-d80d-4a9f-970e-728bd530332e/

或这里:http : //blogs.msdn.com/b/bahill/archive/2009/03/30/managing-data-motion-during-your-deployments-part-1.aspx

两者都意味着额外的工作,我希望框架为此类常见情况提供更多支持。但是至少可以那样做。


gur*_*777 5

您还可以从“发布数据库”对话框中指定列的默认值,而不是指定该列的默认值;进入“高级”->“高级部署选项”并选中“生成智能默认值”框。

根据VS中的描述:生成智能默认值:更新包含不允许空值的列的数据的表时自动提供默认值。