TRY CAST可用,而SQL Server 2012中没有TRY CONVERT?

问题描述 投票:0回答:1

我的服务器上有SQL Server 2012(v11.0.5058.0(X64))。我注意到SSMS中存在一个奇怪的问题。如果我写TRY_CAST它在工具提示中说:

TRY_CAST未被识别为内置函数名称

和intellisense确实适用于TRY_CONVERT

当我运行我的存储过程时:

它成功执行TRY_CAST但为TRY_CONVERT抛出错误。

编辑:以下是确切的陈述:

DECLARE @var_val varchar(10) = 'test val' --in my case either a float value 
--like 4.2 or characters like **** , \&, ----  
DECLARE @float_val float = TRY_CAST(@var_val as float) -- works but ssms shows error 
--while typing
DECLARE @float_val_con float = TRY_CONVERT(float, @var_val) -- ssms provide intellisence 
--but execution gives error 
sql-server sql-server-2012
1个回答
3
投票

在这里查看,https://docs.microsoft.com/en-us/sql/t-sql/functions/try-cast-transact-sql?view=sql-server-2017它说TRY_CAST不是一个新的保留关键字,并且可用于所有兼容级别

这意味着,TRY_CAST将适用于所有人,但TRY_CONVERT(https://docs.microsoft.com/en-us/sql/t-sql/functions/try-convert-transact-sql?view=sql-server-2017)仅适用于110。

ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = 110

这肯定会解决这个问题!

© www.soinside.com 2019 - 2024. All rights reserved.