【问题标题】:Is it possible to call a user-defined function without the schema name?是否可以在没有模式名称的情况下调用用户定义的函数?
【发布时间】:2010-10-04 21:57:28
【问题描述】:

我使用的是 MS SQL 2005,当我创建一个函数时,我需要输入架构名称来调用它:

select dbo.MyFunc

我所有的表也在“dbo”模式中,我不需要模式名称来引用它,所以我想知道我是否缺少一些可以对函数执行相同操作的配置。

【问题讨论】:

标签: sql-server sql-server-2005 schema


【解决方案1】:

简短的回答,不,不是。

您应该考虑在 all 您的数据库对象前加上架构所有者,以避免让 sql server “查找”。

它使您的语句更具可读性并略微提高性能(尽管您可能不会注意到它)。

问候, 利文

【讨论】:

  • +1 用于考虑 dbo 所有权,特别是对于收缩包装的应用程序
【解决方案2】:

与所有其他数据库对象(表、视图和存储过程)不同,用户定义的函数在引用时总是需要模式名称。这是 SQL Server 的一个怪癖。

【讨论】:

    【解决方案3】:

    *标量值函数必须至少使用函数的两部分名称来调用

    http://msdn.microsoft.com/en-us/library/ms186755.aspx

    +1 家长

    鲍里克

    【讨论】:

    • +1 因为与 Anthony Faull 的回答相反,这里我们得到了来源/引文
    猜你喜欢
    • 2016-07-17
    • 2021-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    • 2021-04-26
    • 2012-01-08
    相关资源
    最近更新 更多