我在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
如果单击主键,它甚至具有名称属性,但它是只读的。我得到它只是创建脚本而不是发布到SQL Server,它删除了主键上的单词约束和名称。
答案 0 :(得分:3)
我注意到了同样的行为(这也适用于我的Visual Studio 2015)。
我发现删除然后重新设置主键后,自动名称@HeaderMap header: Map<String, ?>
被赋予PK约束。
PK_<tableName>
PK约束消失] 我不知道是否有办法在GUI中直接编辑约束的name属性。因此,如果您希望对名称进行更精细的控制(即名称与表名无关),脚本编辑可能是唯一的选择。
(对于这个问题,我显然已经很晚了,但也许这个答案可能对其他可能在以后遇到这个问题的人有用。)
答案 1 :(得分:0)
这对你有用:
CREATE TABLE [dbo].[Stock]
(
[Id] INT NOT NULL,
[StockCode] NVARCHAR(6) NOT NULL,
[CreatedDate] DATETIME2 NOT NULL
)
GO
ALTER TABLE dbo.Stock ADD CONSTRAINT
DF_Stock_CreatedDate DEFAULT GETDATE() FOR CreatedDate
GO
ALTER TABLE dbo.Stock ADD CONSTRAINT
PK_Stock_Id PRIMARY KEY CLUSTERED
(
Id
)
GO