这里是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);
}
反正是有复制在SQL这个功能?
等效代码如下:
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。作为https://en.wikipedia.org/wiki/Universally_unique_identifier#Format指定一个有效的GUID将需要有一个版本和变异,并没有版本0,变异0。