是否可以在SQL Server中自动递增列而不将其作为主键?
如果是,如何做到这一点。
由于
答案 0 :(得分:26)
是。不要求IDENTITY
列成为主键。
CREATE TABLE T
(
X INT PRIMARY KEY,
Y INT IDENTITY(1,1)
)
虽然我不确定这什么时候会有用。如果你有一个自然键要用作PK,那么你可能想要在代理备用键上设置一个唯一的约束。
为了设置FK关系,SQL Server不关心列是否是PK,它只需要一个唯一的索引/它们。
答案 1 :(得分:5)
使用IDENTITY关键字声明列,并且不要在其上创建PRIMARY KEY约束。