visual-studio-2010 - 如何添加 NOT NULL 列?

标签 visual-studio-2010 database-project

我开始使用数据库项目并为简单的任务而苦苦挣扎。如果我想添加一个新列,即 NOT NULL ,如果表中已经有数据,我该如何使它工作?

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

-- ... ADD COLUMN X ... 
-- insert data into x
-- ... ALTER COLUMN X NOT NULL

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

感谢任何提示
sl3dg3

最佳答案

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

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

    或者
  • 将预部署脚本中表的数据备份到临时表中,删除目标表中的数据
  • 在部署后脚本中,将数据移回目标表,包括新的 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

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

    关于visual-studio-2010 - 如何添加 NOT NULL 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11683380/

    相关文章:

    visual-studio-2012 - MSBuild 和 SQL Server 数据库项目 : bind the deploy and publish desination to the build configuration

    sql - "Grant Connect on Endpoint as [sa]"有什么作用?

    sql-server - sqlcmd 变量缺少值

    visual-studio-2010 - 在Visual Studio中更改EOL字符

    c++ - 如何编写 C++ 代码以适应 LaTeX 列表边距

    c# - Visual Studio 2010 认为它处于 Debug模式(但它设置为 Release模式)

    c++ - 从函数返回前释放 unique_ptr

    sql-server - 使用 VSDBCMD.exe 创建 dbschema 文件时出错

    c# - 从 Form 启动外部 exe,然后等待它生成文件,或者关闭

    visual-studio-2010 - 如何使用 Visual Studio 2010 创建增量脚本来更新数据库架构?