基本上,我想以与 identity 相似的方式使用 uniqueidentifier。 我不想向其插入值,它应自动插入值,每行有不同的值。 我无法在 uniqueidentifier 类型的列上设置自动增量(属性“autoincrement”设置为 false,不可编辑)。
基本上,我想以与 identity 相似的方式使用 uniqueidentifier。 我不想向其插入值,它应自动插入值,每行有不同的值。 我无法在 uniqueidentifier 类型的列上设置自动增量(属性“autoincrement”设置为 false,不可编辑)。
或者更好的方法是:将newsequentialid()
作为UNIQUEIDENITIFER列的默认值。这将为您提供一系列略微顺序的GUID。
CREATE TABLE dbo.YourTable
(SerialID UNIQUEIDENTIFIER
CONSTRAINT DF_SerialID DEFAULT newsequentialid(),
.... (other columns)......
)
ALTER TABLE dbo.YourTable
ADD CONSTRAINT DF_SerialID DEFAULT newsequentialid() FOR SerialID
那应该就行了!
我猜你指的是 SQLServer 而不是 C#...
将该列设置为 PRIMARY KEY 和 ROWGUID
RowGuid http://img341.imageshack.us/img341/8867/sqlserverrowguid.png
nvarchar(36)
比 CI
更好吗? - ZapnologicaI think
CREATE TABLE dbo.YourTable
(
SerialID UNIQUEIDENTIFIER PRIMARY KEY DEFAULT newsequentialid()
)
使用NewID()作为默认值。至少在SQL Server中是这样做的。
INT IDENTITY
优化(因为 GUID 是 16 个字节而不是 4 个字节 - 大小增加了 4 倍),但它比完全随机的newid()
GUID 更可靠。我仍然更喜欢INT IDENTITY
。 - marc_s