VS 数据库项目主键名称
VS Database Project Primary Key Name
我在 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 服务器,它删除了主键上的单词约束和名称。
这对你有用:
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
我注意到了相同的行为(这对我来说也是 Visual Studio 2015 年)。
GUI 选项
我发现在删除然后 re-setting 主键后,自动名称 PK_<tableName>
被赋予 PK 约束。
PK场上- right-click和select"Remove Primary Key"
- [看到Keys节点下的
<unnamed>
PK约束消失]
- right-click 再次在该字段上 select "Set Primary Key"
- [看到PK约束重新出现在Keys节点下,这次命名为]
我不知道是否有办法在 GUI 中直接编辑约束的名称 属性 editable。因此,如果您想更精细地控制名称(即不与 table 名称绑定的名称),脚本编辑可能是唯一的选择。
(我对这个 SO 问题显然已经很晚了,但也许这个答案对其他人可能 运行 稍后会有所帮助。)
我在 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 服务器,它删除了主键上的单词约束和名称。
这对你有用:
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
我注意到了相同的行为(这对我来说也是 Visual Studio 2015 年)。
GUI 选项
我发现在删除然后 re-setting 主键后,自动名称 PK_<tableName>
被赋予 PK 约束。
-
PK场上
- right-click和select"Remove Primary Key"
- [看到Keys节点下的
<unnamed>
PK约束消失]
- [看到Keys节点下的
- right-click 再次在该字段上 select "Set Primary Key"
- [看到PK约束重新出现在Keys节点下,这次命名为]
我不知道是否有办法在 GUI 中直接编辑约束的名称 属性 editable。因此,如果您想更精细地控制名称(即不与 table 名称绑定的名称),脚本编辑可能是唯一的选择。
(我对这个 SO 问题显然已经很晚了,但也许这个答案对其他人可能 运行 稍后会有所帮助。)