我正在更新数据库,为表中的每条记录添加一个 GUID 列。
此表由多个不同的来源填充,其中一些来源不会为新记录提供 GUID。
仅当没有为新记录传入任何值时,如何在数据库端使用 newid() 填充此列?
最佳答案
不要重复,不要放置 NEWID()
的默认列。如果你这样做,你得到的 GUID 将是完全随机的,如果你在此列上有任何类型的索引,它将毫无用处。如果您要执行此操作,则需要将列默认值设置为 NEWSEQUENTIALID ( )
金伯利特里普有一个Great Article另一个 Great Article关于这个主题。
要实现 NEWSEQUENTIALID ( )
作为默认值:
CREATE TABLE foo
(unq_id UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(),
cola varchar(10));
关于sql - 如果未提供,则在 SQL Server 中生成新的 GUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14817235/