5

我使用与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; 

这似乎是一个重大的监督,所以我不知道在哪里可以找到神奇的开关,包括缺省约束在所有数据库操作的名称。

回答

4

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

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