2011-09-14 35 views
13

是否可以自动增加SQL Server中的列而不是主键?SQL Server自动增加没有主键的列

如果是这怎么办。

谢谢

+1

当然 - 该列只需要声明为“INT IDENTITY”(或BIGINT) - 就是这一切。没有要求它成为主键 - 没有任何... –

+2

什么限制你从......试图? –

+0

@adrian:......请不要在您的生产系统上使用! :-) –

回答

25

是的。没有要求将IDENTITY列作为主键。

CREATE TABLE T 
(
X INT PRIMARY KEY, 
Y INT IDENTITY(1,1) 
) 

尽管我不确定这是否有用。如果你有一个你想用作PK的自然键,那么你可能想要在代理替代键上设置一个唯一的约束。

为了设置FK关系,SQL Server不关心列是否是PK,它只需要一个唯一的索引就可以了。

+1

这是一种简单的方法来记住记录添加到表中的顺序。 –

+0

@拉里 - 当然是啊。没想到这一点。 –

+1

@Larry,所以是一个默认(getdate())的CreatedDate,这更有意义 –

5

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