这两个创建表格片段之间有区别吗?一个包含CONSTRAINT关键字,另一个不包含。
CREATE TABLE [dbo].[Person](
[ID] [bigint] NOT NULL,
[Name] [varchar](255) NOT NULL,
PRIMARY KEY CLUSTERED ([ID] ASC))
CREATE TABLE [dbo].[Person](
[ID] [bigint] NOT NULL,
[Name] [varchar](255) NOT NULL,
CONSTRAINT [PK_Person] PRIMARY KEY CLUSTERED ([ID] ASC))
我有一个以两种方式定义表格的数据库,我想知道我是否应该对此做些什么。
答案 0 :(得分:8)
除了约束的命名之外没有区别。如果您没有指定一个,SQL Server将为您创建一个,但约束的名称不容易识别。
我更愿意为所有数据库对象提供良好的命名约定,而不是依赖于SQL Engine生成的名称。
答案 1 :(得分:0)
CONSTRAINT [PK_Person]
部分是可选的。您可以阅读更多相关信息here;来自MSDN页面:
<强>约束强>
是一个可选的关键字,表示 PRIMARY KEY的开头,NOT NULL, 独特,外键或检查 约束定义。约束是 强制数据的特殊属性 完整性,他们可能会创建索引 对于表格及其列。