I’m trying to create a table in SQL Server. I want to generate a unique identifier 32 bit and be the primary key.
I define it as primary key and set the type – how I can turn on the generation? How I can set it to be 32 bit?
Advertisement
Answer
If you want a 32-bit unique identifier that is unique on each row . . . well, you have just defined the identity column:
create table . . . (
id int identity primary key,
. . .
);
This will, of course, be a sequential number, but that meets your conditions.
EDIT:
If you want newid() then use a default value:
create table . . . (
id uniqueidentifier primary key default newid(),
. . .
);
Of course, newsequentialid() is a better choice than newid(), but your sample code uses newid().
A uniqueidentifer is 16 bytes (128 bits), so it doesn’t meet your needs. I don’t think there is any other built-in mechanism for a 32-bit unique number that is guaranteed to be unique.
