以下SQL语句在SQL Server 2012(SP1)11.0.3401.0版本上失败
DECLARE @b VARCHAR(10) = '12312.2' SELECT TRY_CONVERT(DECIMAL(10,2),@b)
错误信息
Msg 195, Level 15, State 10, Line 2 'DECIMAL' is not a recognized built-in function name.
但可以在SQL Server 2012(SP1)11.0.3393.0上正常运行
两台服务器都没有问题 TRY_PARSE()
TRY_PARSE()
DECLARE @b VARCHAR(10) = '12312.2' SELECT TRY_PARSE(@b AS DECIMAL(10,2))
更新:
经过进一步测试并尝试转换为不同类型后,得到了另一个不同的错误消息
DECLARE @b VARCHAR(10) = '12312' SELECT TRY_CONVERT(INT,@b)
错误:
error: Msg 195, Level 15, State 10, Line 2 'TRY_CONVERT' is not a recognized built-in function name.
因此,最初的错误消息是未命中的,但是现在我更加困惑为什么它不存在。
检查您正在使用该功能的特定数据库的数据库兼容性级别是否已设置为SQL Server 2012 (110)低于该数据库的兼容性级别properties/options/compatibility level。
SQL Server 2012 (110)
properties/options/compatibility level