为表格生成主键时,最佳方法是什么?
也就是说,当数据库收到的数据不是单独的,不能用作主键时。
在代码中,管理表行主键的最佳方法是什么?
感谢。
答案 0 :(得分:2)
AUTO_INCREMENT
,SQL Server中的IDENTITY
..
答案 1 :(得分:2)
对于任何主键,第一个建议远离uniqueidentifier。虽然它有一些有趣的简单方法来生成客户端,但它几乎不可能在主键上有任何可能有用的idex。如果我能够及时回顾并禁止99%的地方使用过独特的标识符,那么在过去的两年里,这将节省超过3人年的dba /开发时间。
我建议使用INT IDENTITY作为主键。
create table YourTableName(
pkID int not null identity primary key,
... the rest of the columns declared next.
)
其中pkID是主键列的名称。
这应该可以满足您的需求。
答案 2 :(得分:1)
IDENTITY
如果您需要知道INSERT
数据时新ID是什么,请使用OUTPUT
语句的INSERT
子句 - 以便将新行的副本放到表中-type param。
如果由于某种原因在SQL上生成唯一ID并不适合您,请在您的应用程序中生成GUID - GUID具有非常高的单一性(但实际上并不能保证)。 SQL Server为列提供了专用的GUID类型 - 它被称为uniqueidentifier
。