Sql server 选择标量值udf sql server
我正在使用SQLServer2008RC2,我对标量值函数的命名约定有一个疑问。具体来说,下面的代码可以正常工作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表示法,则表示您使用的
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