把用户定义函数创建在MASTER数据库中即可。

解决方案 »

  1.   

    函数调用
    在可使用标量表达式的位置可唤醒调用标量值函数,包括计算列和 CHECK 约束定义。当唤醒调用标量值函数时,至少应使用函数的两部分名称。[database_name.]owner_name.function_name ([argument_expr][,...])如果用户定义函数用于定义计算列,则该函数的确定性同样决定了是否可在该计算列上创建索引。只有当函数具有确定性时,才可以在使用该函数的计算列上创建索引。如果在输入相同的情况下函数始终返回相同的值,则该函数具有确定性。可以使用由一部分组成的名称唤醒调用表值函数。[database_name.][owner_name.]function_name ([argument_expr][,...])对于 Microsoft® SQL Server™ 2000 中包含的系统表函数,唤醒调用时需在函数名的前面加上前缀"::"。SELECT *
    FROM ::fn_helpcollations()
      

  2.   

    把用户定义函数创建在MASTER数据库中即可。
    ----------------------------------------------------
    我弄错了,希望没有误导。
      

  3.   

    如果是oracle就简单了,建一个同义词,grant一次就ok
    ms sql 权限,安全管理方面的功能感觉很差劲,不好用,功能也不强大
      

  4.   

    对于sql server 2000来说,用户定义函数分为:
    标量函数          返回一个值,调用时必须使用所有者名
    例如下面的(或者楼主自己的):create function dbo.f_test() returns int
    as
    begin
      return(1)
    end
    go--调用
    select dbo.f_test()