代码之家  ›  专栏  ›  技术社区  ›  dance2die

“::”和“sys”模式有什么区别?

  •  1
  • dance2die  · 技术社区  · 16 年前

    据我所知,Bol exmaple on fn_trace_getinfo 用于使用
    :: 而不是 sys 示例中的模式如下

        SELECT * FROM ::fn_trace_getinfo(default)
    

        SELECT * FROM sys.fn_trace_getinfo(default)
    

    这两者有什么区别吗?
    什么? :: 意思是?

    2 回复  |  直到 13 年前
        1
  •  2
  •   Adriaan Stander    16 年前

    好吧,我希望 this (以fn开头的udf)帮助

    从页面上看::似乎会告诉SQL Server这必须是系统UDF,并且只能在master db中找到。

    问:

    我经常阅读如何存储 我们创建的过程不应该是 使用sp_u命名,因为SQL Server将 首先检查主数据库 尝试查找SP时的当前数据库 执行。我总是点头 我很高兴我没有这么做。 那。因为某种原因,它从来没有点击过 UDF的行为可能是相同的。

    我有几个UDF开始了。 当我引用一个udf作为dbo.fn时… SQL Server是否检查主数据库 只有在没有发现 他们检查当前数据库?如果是,是 这有什么好的表现吗?

    答:

    否。要调用系统提供的UDF,您 需要使用::,所以这就是SQL 服务器查找。提供的所有系统 UDF是表函数,作为标量 系统功能根本不是UDF。

        2
  •  2
  •   gbn    16 年前

    Even the SQL Experts are not sure. It changed from SQL Server 2000 to SQL Server 2005

    我的随机猜测是 user/schema separation 在SQL Server 2005中,不再需要简单的系统架构