請幫我隨機數
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
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。如果它是一個簡單的整數而不是一個笨拙的指導,那麼調試一個關鍵碼更容易。在SQL中進行測試/調試時,手工打孔非常不方便,因爲必須插入GUID並使格式正確。此外,順序編號爲您提供另一種查看記錄順序的方式。但這可能取決於您的具體應用需求。而且,順序ID比GUID更普遍。 GUID有些微軟主義,雖然它們可以存儲在其他數據庫(如Oracle)中,但字節的順序對於SQL Server是唯一的,並且不易輕鬆移植。
此外,只是一個預感,但順序整數ID可能有更好的索引性能。
謝謝!很有幫助 。 – iCoder 2013-05-13 17:24:09
非常歡迎。如果您覺得此問題能夠充分回答您的問題,請將其標記爲已回答,以便可以關閉該問題。 – 2013-05-13 18:46:35
@iCoder:http://meta.stackexchange.com/a/5235/161449 – 2013-05-14 04:25:15
如果要求爲每個記錄的唯一的10位數字,而沒有邏輯,那麼這將做到這一點。此外,您可能需要考慮使用BIGINT
而不是INT
作爲您的ID
列,因爲您已經開始使用10位數的10億位數。 INT
數據類型的上限爲2147483647
。
CREATE TABLE UNIVERSITY
(
ID INT IDENTITY(1000000000, 1) PRIMARY KEY
,FirstName NVARCHAR(100)
,LastName NVARCHAR(100)
)
已經回答了,這裏http://stackoverflow.com/questions/16447254/randomly-generating-unique-number-between-1-999-for-primary-key-in-table/16447477#16447477 – 2013-05-13 17:00:33
它真的必須是一個隨機數嗎?爲什麼不使用順序ID?保證是唯一的,它是內置的。另一個選項是GUID,但是,我不是一個整數。我假設它必須是基於表定義的整數。 – 2013-05-13 17:00:48
@StealthRabbi感謝您的支持。你能給我一些小代碼嗎? – iCoder 2013-05-13 17:05:41