整型转换通过字节GUID

问题描述 投票:0回答:1

这里是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这个功能?

sql sql-server tsql
1个回答
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。作为https://en.wikipedia.org/wiki/Universally_unique_identifier#Format指定一个有效的GUID将需要有一个版本和变异,并没有版本0,变异0。

© www.soinside.com 2019 - 2024. All rights reserved.