我有一个查询,试图将GUID连接到字符串。无论我做什么,或尝试将GUID转换为什么,都会收到算术溢出错误。即使这样:
select CAST(NEWID() as nvarchar)
返回值:
Msg 8115, Level 16, State 2, Line 1 Arithmetic overflow error converting expression to data type nvarchar
所有类似的问题均已通过CAST或CONVERT解决,但始终会返回错误。CHAR或VARCHAR的结果相同。是否需要更改设置才能使其正常工作?
您陷入了不为nvarchar指定长度的陷阱。您想要的是:
select CAST(NEWID() as nvarchar(36))
[GUID呈现为36个字符串]
如果未指定length,则在CAST和CONVERT函数中使用SQL Server时,varchar / nvarchar的默认长度为30。
您应该始终明确指定您的字符串长度。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句