为什么在SQL Server中甚至允许IDENTITY UNIQUE?

时间:2018-11-12 19:36:15

标签: sql-server

这是为什么

CREATE TABLE ORDERS
(
   OrderID INT IDENTITY(1, 1) UNIQUE,
   BuyerID INT,

   PRIMARY KEY(OrderID, BuyerID)
);

即使在SQL Server中也允许?

我的意思是,为什么允许IDENTITY(1, 1) UNIQUE

IDENTITY是否已经意味着这些值将是唯一的?

这就像C#中的静态const-const已经是静态的(C#中不允许使用静态const)

1 个答案:

答案 0 :(得分:3)

否,IDENTITY并不意味着这些值将是唯一的。您可以重置标识列的种子,这将为您提供重复项。或者,您可以启用IDENTITY_INSERT,这将允许您输入自己的值。

IDENTITY是指如何生成值,而UNIQUE是添加约束。 2个不同的概念。