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