tsql - 将二进制转换为 t-sql 中的唯一标识符?

标签 tsql sql-server-2008-r2

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

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

关于tsql - 将二进制转换为 t-sql 中的唯一标识符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17557452/

相关文章:

sql-server - 检查空 varbinary(max) 列的效率?

sql-server - 列数不一致的 BULK INSERT

sql-server - 将具有多个内部连接的 sql 查询转换为 LINQ

sql-server - SQL Server 数据库图显示关系

sql - 如何在sql server management studio中查找linked_server名称?

sql - 如果表有一行或多行存在一个条件,则获取 ID

tsql - 从另一个存储过程中的存储过程中获取值

asp.net-mvc-3 - 附加 .mdf 文件时的数据库 "cannot be opened because it is version 661"

c# - 错误 :RESTORE cannot process database 'Test_DB' because it is in use by this session

datetime - SQL Server 2008 将 int 转换为 dd :hh:mm