我可以在没有 [dbo] 的情况下调用 SQL Server 2005 中的函数吗?
Posted
技术标签:
【中文标题】我可以在没有 [dbo] 的情况下调用 SQL Server 2005 中的函数吗?【英文标题】:Can I call a function in SQL Server 2005 without the [dbo]? 【发布时间】:2011-07-27 16:28:14 【问题描述】:我有一个第 3 方程序,它坚持使用 UCase(value)
重写某些 SQL 语句。 SQL Server 2005 不支持UCase
,所以我想我可以创建一个返回UPPER(value)
的用户定义函数并为其分配UCase
的别名,但看来我仍然需要使用[dbo].[Alias]
是否可以在没有[dbo]
前缀的情况下调用用户定义函数?或者有没有办法让 SQL 以SELECT UPPER('abc')
运行SELECT UCase('abc')
?
【问题讨论】:
【参考方案1】:遗憾的是,不,如果不使用所有者作为前缀,就无法在 SQL Server 中调用 UDF。您可以在此处找到有关此主题的许多讨论:
http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=call+sql+server+function+without+dbo+prefix
当然,解决方案是让第 3 方修复应用程序。这不是一个选项吗?
【讨论】:
第三者是微软,所以我认为它不会很快发生。该产品是 Microsoft Dynamics。 等等 -- MS Dynamics 构造的数据库调用与 SQL Server 不兼容?似乎有些不对劲。在这里在黑暗中拍摄......该应用程序是否可以配置为针对不同的 DBMS 运行? mysql 和 Access 都支持 UCASE。 Dynamics 是否认为它正在达到其中之一? 我找不到任何设置,但我不会停止寻找。整个 Dynamics 数据库是 SQL Server,而我们遇到问题的部分是他们的 Integration Manager 应用程序。除非您尝试从连接到字符串字段的两个数据源中提取数据,否则该程序运行得非常好。由于大部分脚本都是用 VB 完成的,我猜这是被忽略的东西。 查看 Dynamics 文档,仅支持 SQL Server 作为产品的主要后端,因此这个问题只会在 Integration Manager 中出现是有道理的。似乎假设应该通过 JET 引擎访问数据源,该引擎通常用于访问和文本文件,并且是我所知道的唯一支持 UCASE 的 MS 产品。 接受你的回答,因为你回答了我原来的问题:)以上是关于我可以在没有 [dbo] 的情况下调用 SQL Server 2005 中的函数吗?的主要内容,如果未能解决你的问题,请参考以下文章