我想知道是否有人知道NEWSEQUENTIALID是如何执行的。
我的意思是,它是从SQL Server引擎运行的,还是从客户端数据库驱动程序计算的?
另外,考虑到内部的Win32实现,如果我没记错的话,这个函数调用将从任何线程生成一个顺序ID。
发布于 2021-10-26 13:57:25
由于NEWSEQUENTIALID只能用作DEFAULT约束中的表达式,因此它与客户端无关,客户端不必知道它。
只有当具有该DEFAULT约束的列未在INSERT语句中列出或在VALUES列表中使用关键字DEFAULT时,才会生成新的ID (仅调用该函数)。
docs中的关键句子是:
创建的GUID大于自Windows启动以来此函数在指定计算机上以前生成的任何GUID。重新启动Windows后,GUID可以从较低的范围重新开始,但仍然是全局唯一的。NEWSEQUENTIALID()只能与uniqueidentifier()类型的表列的DEFAULT约束一起使用。
https://stackoverflow.com/questions/69724276
复制相似问题