我已经使用这个工具很久了,但是我找不到明确的解释来说明什么情况下不能保证唯一性。以下是我的评论,请根据需要进行更正。
在创建它的机器上,该值被保证是唯一的(通过GUID)。因此,在同一台计算机上由.NET应用程序生成的GUID将永远不会与SQL Server在同一台计算机上生成的GUID发生冲突。
在所有其他情况下,没有保证。理论上说,如果在不同计算机上的不同应用程序为数据库中的唯一标识符字段创建多个原始来源,则可以插入重复项。
编辑:抱歉没有正确地表达问题。我想知道当使用c#的Guid.NewGuid()
,SQL Server的newid()
,newsequentialid()
函数或其他应用程序的任何其他函数时,在相同机器上和在不同机器上生成时冲突的概率。'already answered'链接有一个回复,其中他说他实际上遇到过这种情况。这让你想知道那可能发生的频率有多高。
如果我有一张带有唯一标识符字段作为主键的表,每次插入时是否需要担心通过不同的应用程序或SQL Server的功能创建新值来检查唯一性?
uniqueidentifier
数据类型。你可能在询问newid
函数,或者是newsequentialid
函数。对于这两个函数的答案完全不同,如果你指的是其他内容,答案也可能不同。 - user743382