选择标量值的udf sql server

时间:2010-12-13 19:52:25

标签: sql-server

我正在使用sql server 2008 rc2,我对标量值函数的命名约定有疑问。具体来说,以下代码工作正常

select from database.dbo.MyUDF('arg')

但是当我摆脱dbo并尝试:

select from database..MyUDF('arg')

我收到语法错误,说这是不明确的。我从不在对象的名称中使用dbo表,视图,存储过程或表值函数,我从来没有遇到过这个问题。

为什么我会为标量udf遇到这个问题?

1 个答案:

答案 0 :(得分:0)

首先:

如果您不使用dbo表示法,则表示您正在使用sysadmin权限。否则你最终会以[domain \ user] .Mytable结束,例如在CREATE上。 不良做法。在运行时,它会在查看dbo =较慢的性能之前尝试解析用户的架构。

第二

尝试使用SYNONYMS

CREATE SYNONYM MyUDF FOR dbo.MyUDF

注意,同义词可能需要显式权限(但听起来好像你正在使用sa或dbo)并且我没有将它们与数据库前缀一起使用所以YMMV