主键生成方法

时间:2012-04-14 10:21:41

标签: c# sql-server

为表格生成主键时,最佳方法是什么?

也就是说,当数据库收到的数据不是单独的,不能用作主键时。

在代码中,管理表行主键的最佳方法是什么?

感谢。

3 个答案:

答案 0 :(得分:2)

mysql中的

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)

SQL Server中的

IDENTITY

如果您需要知道INSERT数据时新ID是什么,请使用OUTPUT语句的INSERT子句 - 以便将新行的副本放到表中-type param。

如果由于某种原因在SQL上生成唯一ID并不适合您,请在您的应用程序中生成GUID - GUID具有非常高的单一性(但实际上并不能保证)。 SQL Server为列提供了专用的GUID类型 - 它被称为uniqueidentifier

http://msdn.microsoft.com/en-us/library/ms187942.aspx