0

请帮我

    CREATE TABLE UNIVERSITY
    (
      ID INT,
      FirstName nvarchar(100),
      LastName nvarchar(100)
    )

需要ID自动随机取总是不同的数字。它必须是 10 个数字,没有任何逻辑。

例子:

5478596256  Bob  Brown
9852451254  Tom  Jones
7078596585  Jason  Sadler
4

2 回答 2

0

如果要求每条记录都有一个唯一的 10 位数字,没有逻辑,那么就可以了。此外,您可能需要考虑使用BIGINT而不是INT您的ID列,因为您已经从每 10 位要求的 10 亿开始。INT数据类型的上限是2147483647

CREATE TABLE UNIVERSITY
(
    ID          INT IDENTITY(1000000000, 1) PRIMARY KEY
   ,FirstName   NVARCHAR(100)
   ,LastName    NVARCHAR(100)
)
于 2013-05-14T04:02:35.150 回答
0

考虑创建一个唯一的、连续的 ID

CREATE TABLE STUDENT
(
      -- Start at 1 and increment by 1
      ID INT IDENTITY(1,1) PRIMARY KEY,
      FirstName nvarchar(100),
      LastName nvarchar(100)
)

另一种选择是创建一个唯一标识符(GUID)

CREATE TABLE STUDENT
(
      ID uniqueidentifier NOT NULL DEFAULT NEWSEQUENTIALID() ROWGUIDCOL PRIMARY KEY,
      FirstName nvarchar(100),
      LastName nvarchar(100)
)

就个人而言,我喜欢顺序 ID。如果它是一个简单的整数而不是笨重的 guid,则调试密钥会更容易。当必须输入 GUID 并获得正确的格式时,手动输入 SQL 以进行测试/调试非常令人沮丧。此外,顺序 ID 为您提供了另一种查看记录顺序的方式。但这可能取决于您的特定应用程序需求。此外,顺序 ID 比 GUID 更通用。GUID 有点像微软主义,虽然它们可以存储在其他数据库(如 Oracle)中,但字节顺序对于 SQL Server 来说是唯一的,并且不容易移植。

此外,只是一种预感,但顺序整数 ID 在索引方面可能具有更好的性能。

于 2013-05-13T17:18:54.947 回答