【问题标题】:TRY_CAST is not a recognized built-in function nameTRY_CAST 不是公认的内置函数名
【发布时间】:2016-12-16 15:45:28
【问题描述】:

我对 SQL Server Management Studio 的行为有疑问。 我已连接到 SQL Server 数据库 - 版本:

Microsoft SQL Server 2014 (SP1-CU3) (KB3094221) - 12.0.4427.24 (X64) 
    Oct 10 2015 17:18:26 
    Copyright (c) Microsoft Corporation
    Enterprise Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)

当我从管理工作室运行以下查询时,它会返回正确的输出。

SELECT TRY_CAST('ax' AS decimal)

SELECT TRY_CAST('4.0' as decimal)

但是内置编辑器给了我一条消息,说此功能无法识别。

编辑添加:Sql Server Management Studio 版本。

【问题讨论】:

  • 您的数据库设置为哪种兼容模式?如果它(数据库)设置为早于2012,即使服务器是2014,它也不会理解该功能。
  • 它看起来像是 SS 2012 的功能,但在 2014 年也许他们支持它,但它不是 2014 年的一部分??
  • 您使用的是什么版本的管理工作室?
  • @Damien_The_Unbeliever 版本是12.0.4.100.1
  • @Siyual 如果是这种情况,它应该无法执行该功能。该函数正在执行,没有任何错误。

标签: sql-server ssms sql-server-2014


【解决方案1】:

可以从 sql server 2012 获取。检查

select @@version

还要检查数据库的兼容模式

select name, compatibility_level from sys.databases

如果兼容模式小于 110,则使用 alter database 将其设置为 >=110

alter database yourdatabasename set compatibility_level = 120

【讨论】:

  • 数据库兼容级别为120。
【解决方案2】:

这只是一个智能感知错误。出于某种原因,MS 没有在 SSMS 2014 中包含 try_cast,尽管它在 SSMS 2016 中被认为是有效的函数。

【讨论】:

    【解决方案3】:

    这是一个 IntelliSense 错误,可以在 SSMS 2014 的查询选项卡下禁用它时解决

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-15
      • 2021-11-07
      • 2017-10-19
      • 1970-01-01
      • 2019-06-05
      相关资源
      最近更新 更多