sql - SQL Server中的列级与表级约束?

标签 sql sql-server

a.列级别

GO

CREATE TABLE Products
(
ProductID INT CONSTRAINT pk_products_pid PRIMARY KEY,
ProductName VARCHAR(25)
);

GO

b.表级别

CREATE TABLE Products
(
ProductID INT,
ProductName VARCHAR(25),
CONSTRAINT pk_products_pid PRIMARY KEY(ProductID)
);
GO 

列级约束和表级约束之间有什么区别吗?

最佳答案

没有。如何应用该约束只是个人喜好问题。

主键约束只是一个主键约束 - 它始终适用于(毕竟:它可以包含多个列 - 它不能“在列级别”)。

它不是一次“在列级别”,也不是在其他情况下在“表级别” - 它始终是相同的。

只是为了好玩 - 您还可以通过第三种方式创建主键约束:

(CREATE TABLE statement)
GO

ALTER TABLE dbo.Products
ADD CONSTRAINT PK_Products_pid PRIMARY KEY(ProductID)

这又与您已有的其他两个选项相同。

关于sql - SQL Server中的列级与表级约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9494129/

相关文章:

sql - 想要使用更新触发器更新多条记录

MySQL 检查逗号分隔值是否与表中的行匹配

mysql - 具有多个基本情况的递归 SQL

sql-server - 如何在 Microsoft SQL Server 中仅使用日期查询 DATETIME 字段?

SQL Server 2008 select查询难度

c# - 使用 Entity Framework 将更改保存到 SQL Server 数据库时,一个或多个实体的验证失败

sql - oracle双向分层查询

java - nifi无法连接到SQLServerExpress

SQL Server 如何检索两个数字之间的所有数字

c# - 通过 SSL 连接到 SQL Server 并获取服务器证书