请帮我
CREATE TABLE UNIVERSITY
(
ID INT,
FirstName nvarchar(100),
LastName nvarchar(100)
)
需要ID自动随机取总是不同的数字。它必须是 10 个数字,没有任何逻辑。
例子:
5478596256 Bob Brown
9852451254 Tom Jones
7078596585 Jason Sadler
请帮我
CREATE TABLE UNIVERSITY
(
ID INT,
FirstName nvarchar(100),
LastName nvarchar(100)
)
需要ID自动随机取总是不同的数字。它必须是 10 个数字,没有任何逻辑。
例子:
5478596256 Bob Brown
9852451254 Tom Jones
7078596585 Jason Sadler
如果要求每条记录都有一个唯一的 10 位数字,没有逻辑,那么就可以了。此外,您可能需要考虑使用BIGINT
而不是INT
您的ID
列,因为您已经从每 10 位要求的 10 亿开始。INT
数据类型的上限是2147483647
。
CREATE TABLE UNIVERSITY
(
ID INT IDENTITY(1000000000, 1) PRIMARY KEY
,FirstName NVARCHAR(100)
,LastName NVARCHAR(100)
)
考虑创建一个唯一的、连续的 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 在索引方面可能具有更好的性能。