Ошибка TRY_CONVERT на SQL Server 2012

Следующий 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()

DECLARE @b VARCHAR(10) = '12312.2'
SELECT TRY_PARSE(@b AS DECIMAL(10,2))

Update:

после дальнейшего тестирования и попытки преобразования в разные типы получили другое сообщение об ошибке

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.

Итак, исходное сообщение об ошибке было пропущено, но теперь я еще более смущен, почему его там нет.

Ответ 1

Убедитесь, что для уровня базы данных для конкретной базы данных, в которой вы используете эту функцию, установлено значение SQL Server 2012 (110) в properties/options/compatibility level для базы данных.

Ответ 2

Убедитесь, что вы указали, в какую базу данных вы хотите запустить запрос.

use [Database_Name]
go    
>>>>query here <<<
go

В моем случае у меня было несколько различных баз данных на сервере с разными уровнями совместимости.