我了解在SQL Server中GUID通常是唯一的,而且发生冲突的可能性很小,但同时也必须考虑到有人会赢得彩票,因此我觉得为这种情况做好准备是有意义��。
哪种方法更快/更好的实践呢?
使用一种技术,通过插入一行并检查错误(@@ERROR <> 0)来直接分配一个新的GUID,并重复该过程,直到不再出现错误[理论上最坏的情况只会出现一次...];
还是使用类似以下的方法:
哪种方法更快/更好的实践呢?
使用一种技术,通过插入一行并检查错误(@@ERROR <> 0)来直接分配一个新的GUID,并重复该过程,直到不再出现错误[理论上最坏的情况只会出现一次...];
还是使用类似以下的方法:
DECLARE @MyGUID uniqueidentifier
SELECT @MyGUID = NewID()
if exists(select * from tablename where UserID=@MyGUID)
我会循环遍历,直到找到一个未被使用的。
我喜欢第二种方法,因为我可以在稍后的存储过程中使用GUID,所以我目前倾向于使用这种方法。