Sql server 选择标量值udf sql server

Sql server 选择标量值udf sql server,sql-server,Sql Server,我正在使用SQLServer2008RC2,我对标量值函数的命名约定有一个疑问。具体来说,下面的代码可以正常工作 select from database.dbo.MyUDF('arg') 但当我摆脱dbo并尝试: select from database..MyUDF('arg') 我得到一个语法错误,说这是不明确的。对于表、视图、存储过程或表值函数,我从不以对象的名义使用dbo,我也从来没有遇到过这个问题 为什么对于标量udf会遇到这个问题 首先: 如果不使用dbo表示法,则表示您使用的

我正在使用SQLServer2008RC2,我对标量值函数的命名约定有一个疑问。具体来说,下面的代码可以正常工作

select from database.dbo.MyUDF('arg')
但当我摆脱dbo并尝试:

select from database..MyUDF('arg')
我得到一个语法错误,说这是不明确的。对于表、视图、存储过程或表值函数,我从不以对象的名义使用dbo,我也从来没有遇到过这个问题

为什么对于标量udf会遇到这个问题

首先:


如果不使用dbo表示法,则表示您使用的是系统管理员权限。否则,您将得到[domain\user].Mytable,例如在创建时坏习惯。在运行时,它尝试在查看dbo=较慢的性能之前解析用户的模式

第二:

试用


注意,同义词可能需要明确的权限(但听起来好像您正在使用sa或dbo),我没有将它们与数据库前缀so YMMV一起使用,因为。。。。。这就是团队设计SQL Server的方式。。。。对不起,真的没有明确的原因-只是那样,而且一直都是那样,不-你不能改变它-只是习惯它并使用它。。。。实际上,始终使用
dbo.
表示法被认为是一种最佳实践,因此,对于所有对象,也许是时候开始使用它了。如果不使用dbo表示法,则表示您正在使用系统管理员权限。否则,您将得到[domain\user].Mytable,例如在创建时。坏习惯。在运行时,它尝试在查看dbo=较慢的性能之前解析用户的模式。
CREATE SYNONYM MyUDF FOR dbo.MyUDF