VS数据库项目主键名称

Das*_*ave 2 sql-server database-project visual-studio visual-studio-2015

我在Visual Studio 2015中有一个数据库项目。我想命名主键,但它似乎忽略了任何尝试。虽然可以命名默认约束。

CREATE TABLE [dbo].[Stock]
(
    [Id] INT CONSTRAINT [PK_Stock_Id] NOT NULL PRIMARY KEY, 
    [StockCode] NVARCHAR(6) NOT NULL, 
    [CreatedDate] DATETIME2 CONSTRAINT [DF_Stock_CreatedDate] DEFAULT sysutcdatetime() NOT NULL
)
GO
Run Code Online (Sandbox Code Playgroud)

如果单击主键,它甚至具有name属性,但它是只读的。我得到它只是创建脚本而不是发布到SQL Server,它去除了主键上的单词约束和名称。

egn*_*tor 7

我注意到了相同的行为(对我来说,这也是在Visual Studio 2015中)。

vs2015-db-unnamed-constraint

GUI选项

我发现,在删除并重新设置主键后,将自动名称PK_<tableName>赋予PK约束。

  1. 右键单击PK字段,然后选择“删除主键”
    • [请参见“ <unnamed>密钥”节点下的PK约束消失]
  2. 再次右键单击该字段,然后选择“设置主键”
    • [参见PK约束重新出现在Keys节点下,这次命名为]

我不知道是否有一种方法可以使约束的name属性在GUI中直接可编辑。因此,如果您想更精细地控制名称(即不与表名称绑定的名称),则脚本编辑可能是唯一的选择。

(我对这个SO问题显然很迟,但是也许这个答案对以后可能遇到此问题的其他人很有用。)