【发布时间】:2010-10-04 21:57:28
【问题描述】:
我使用的是 MS SQL 2005,当我创建一个函数时,我需要输入架构名称来调用它:
select dbo.MyFunc
我所有的表也在“dbo”模式中,我不需要模式名称来引用它,所以我想知道我是否缺少一些可以对函数执行相同操作的配置。
【问题讨论】:
标签: sql-server sql-server-2005 schema
我使用的是 MS SQL 2005,当我创建一个函数时,我需要输入架构名称来调用它:
select dbo.MyFunc
我所有的表也在“dbo”模式中,我不需要模式名称来引用它,所以我想知道我是否缺少一些可以对函数执行相同操作的配置。
【问题讨论】:
标签: sql-server sql-server-2005 schema
简短的回答,不,不是。
您应该考虑在 all 您的数据库对象前加上架构所有者,以避免让 sql server “查找”。
它使您的语句更具可读性并略微提高性能(尽管您可能不会注意到它)。
问候, 利文
【讨论】:
与所有其他数据库对象(表、视图和存储过程)不同,用户定义的函数在引用时总是需要模式名称。这是 SQL Server 的一个怪癖。
【讨论】:
【讨论】: