SQL Server自动递增没有主键的列

Bru*_*uce 13 sql sql-server

是否可以在SQL Server中自动递增列而不将其作为主键?

如果是,如何做到这一点.

谢谢

Mar*_*ith 26

是.不要求将IDENTITY列设为主键.

CREATE TABLE T
(
X INT PRIMARY KEY,
Y INT IDENTITY(1,1)
)
Run Code Online (Sandbox Code Playgroud)

虽然我不确定这什么时候会有用.如果你有一个自然键要用作PK,那么你可能想要在代理备用键上设置一个唯一的约束.

为了设置FK关系,SQL Server不关心列是否是PK,它只需要一个唯一的索引/它们.

  • 这是记住记录添加到表中的顺序的一种简单方法。 (2认同)

Lar*_*tig 5

使用IDENTITY关键字声明列,并且不要在其上创建PRIMARY KEY约束.