最常用是 ROW_NUMBER() OVER(ORDER BY GETDATE()) 但是用在复杂的查询语句效率比较低!
复杂语句我建议用:
ABS(( SELECT CONVERT(INT, HASHBYTES('MD5',
CAST(tp.pbID AS NVARCHAR(20)) + ','
+ CAST(tp.twiID AS NVARCHAR(20))))
))
虽然不是100%唯一值,不过经过了MD5加密,重复概率低到可以忽略。
视图中还可以用(表值函数不能用)
ABS( CAST(CAST(NEWID() AS VARBINARY(16)) AS INT))
大家有更好的建议吗?