2

我想将newid()输出转换或转换为十进制(需要最小空间)

到目前为止,我这样做了:

SELECT  CAST( '0x'+REPLACE(CAST(NEWID() AS VARCHAR(50)), '-', '' ) AS DECIMAL(38,0) )

但我收到了这个错误:

将数据类型 varchar 转换为数字时出错。

搜索了很多但感到沮丧,来这里寻求帮助。

提前谢谢了。


更新:十进制(8,0)变成十进制(38,0),仍然得到同样的错误。

4

1 回答 1

5

这是一个xy 问题

用于 GUID 的正确数据类型是uniqueidentifier. 无需自己将其转换为某种数字数据类型。

uniqueidentifier以 16 字节二进制格式存储,而不是显示的字符串char(36)

于 2013-03-11T10:40:04.843 回答