Tsql 在t-sql中将二进制转换为uniqueidentifier?

Tsql 在t-sql中将二进制转换为uniqueidentifier?,tsql,sql-server-2008-r2,Tsql,Sql Server 2008 R2,我有以下将唯一标识符转换为二进制的代码: CAST(GUID AS BINARY(16)) 这导致了“0x56B3C0955919CD40931F550749A83AF3” 现在,我想将其(即二进制字符串值'0x56B3C0955919CD40931F550749A83AF3')转换为唯一标识符 有什么简单的方法可以做到这一点吗?嗯,只要把它转换回来就行了 DECLARE @n UNIQUEIDENTIFIER = NEWID(); SELECT @n; SELECT CONVERT(BIN

我有以下将唯一标识符转换为二进制的代码:

CAST(GUID AS BINARY(16))
这导致了“0x56B3C0955919CD40931F550749A83AF3”

现在,我想将其(即二进制字符串值
'0x56B3C0955919CD40931F550749A83AF3'
)转换为唯一标识符


有什么简单的方法可以做到这一点吗?

嗯,只要把它转换回来就行了

DECLARE @n UNIQUEIDENTIFIER = NEWID();

SELECT @n;
SELECT CONVERT(BINARY(16), @n);
SELECT CONVERT(UNIQUEIDENTIFIER, CONVERT(BINARY(16), @n));
如果您有一个二进制值,如
0x56B3C0955919CD40931F550749A83AF3
,请在尝试转换时停止将其置于引号中。例如:

SELECT CONVERT(UNIQUEIDENTIFIER, 0x56B3C0955919CD40931F550749A83AF3);
这不是你想要的结果吗

95C0B356-1959-40CD-931F-550749A83AF3

当然可以,但我的问题是我不能在最后一行中使用@n。我必须使用二进制文件的字符串值,即“0x27777EDFC1533B4388B01EACB8ED7102”。因此,如果您这样做:选择CONVERT(UNIQUEIDENTIFIER,CONVERT(二进制(16),'0x27777EDFC1533B4388B01EACB8ED7102');你得到了错误的值,它是二进制的。不需要报价。非常感谢你的帮助。