我正在尝试解决与从 UniqueIdentifier 转换为 BigInt 并返回非常相似的问题?不幸的是,该示例没有显示整个过程,它仅显示将 GUID 转换回 BIGINT。
我将此称为假设问题,因为我已经决定将整数存储为 GUID 不是很有用。但是此时,我只是想知道为什么转换过程不起作用。
在第 5 步之前一切看起来都很好......
SELECT 1 AS Step
,100966116980299
SELECT 2 AS Step
,CONVERT(VARBINARY(8), 100966116980299, 1)
SELECT 3 AS Step
,CONVERT(UNIQUEIDENTIFIER,
CONVERT(VARBINARY(8), 100966116980299, 1)
)
SELECT 4 AS Step
,CONVERT(VARBINARY(8),
CONVERT(UNIQUEIDENTIFIER,
CONVERT(VARBINARY(8), 100966116980299, 1)
), 1
)
SELECT 5 AS Step
,CONVERT(BIGINT,
CONVERT(VARBINARY(8),
CONVERT(UNIQUEIDENTIFIER,
CONVERT(VARBINARY(8), 100966116980299, 1)
), 1
)
)
结果
Step Value
1 100966116980299
2 0x0F0000014B768901
3 0100000F-764B-0189-0000-000000000000
4 0x0F0000014B768901
5 1080863916129945857