这是c#
public static Guid ToGuid(long value)
{
var buffer = BitConverter.GetBytes(value);
var inputBuffer = new byte[16];
for (var i = 0; i < buffer.Length; i++)
{
inputBuffer[i] = buffer[i];
}
return new Guid(inputBuffer);
}
反正有在TSQL中复制此功能吗?
答案 0 :(得分:0)
等效代码为:
DECLARE @i INT=123456
SELECT CONVERT(UNIQUEIDENTIFIER,CONVERT(BINARY(4),REVERSE(CONVERT(CHAR(4),CONVERT(BINARY(4),@i)))))
这是另一个更简单的选项(但不会产生相同的结果):
DECLARE @i INT=123456
SELECT CONVERT(UNIQUEIDENTIFIER,CONVERT(BINARY(4),@i))
但是,正如其他人在评论中警告的那样,这两种方法均不能产生有效的GUID。根据{{3}}中的规定,有效的GUID必须具有一个版本和一个变体,并且没有版本0,变体0。