私は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