在生成更新脚本时包含默认约束名称

时间:2012-10-31 16:28:53

标签: sql-server visual-studio-2012 constraints database-project schema-compare

我在Visual Studio 2012中使用 SQL Server数据库项目,在比较和生成更新脚本时遇到以下问题:

在Visual Studio中,我添加了一个具有默认约束的列,例如:

[NewColumn] NVARCHAR(50) CONSTRAINT [DF_ExistingTable_NewColumn] NOT NULL DEFAULT N''

不幸的是,在以下情况下不会出现默认约束的名称:

  • 比较(架构比较)我的项目与实际数据库
  • 生成更新脚本(来自架构比较

创建的更新脚本包含以下脚本(无约束名称):

ALTER TABLE [dbo].[ExistingTable]
    ADD [NewColumn] NVARCHAR (50) DEFAULT N'' NOT NULL;

这似乎是一个重要的疏忽,所以我想知道在哪里找到魔术开关,在所有数据库操作中包含默认约束的名称。

1 个答案:

答案 0 :(得分:5)

我认为您的定义中的订单可能不合适。尝试将“NOT NULL”部分移动到行的末尾,而不是在约束定义的中间。

[NewColumn] NVARCHAR(50) CONSTRAINT [DF_ExistingTable_NewColumn] DEFAULT N'' NOT NULL