在T-SQL中执行NEWSEQUENTIALID



我想知道是否有人知道NEWSEQUENTIALID是如何执行的。

我的意思是它是从SQL Server引擎运行还是从客户端数据库驱动程序进行评估?

还考虑到内部Win32实现,如果我没记错的话,这个函数调用将从任何线程生成一个顺序ID。

由于NEWSEQUENTIALID只能作为DEFAULT约束中的表达式使用,因此与客户端无关,客户端不必知道。

只有当INSERT语句中没有列出具有DEFAULT约束的列或在VALUES列表中使用关键字DEFAULT时,才会生成一个新的ID(该函数才会被调用)。

文档中的关键句子是:

创建一个GUID,该GUID大于自Windows启动以来该函数在指定计算机上生成的任何GUID。重新启动Windows后,GUID可以从较低的范围重新启动,但仍然是全局唯一的。

NEWSEQUENTIALID()只能与默认约束一起用于uniqueidentifier类型的表列。

最新更新