用户定义的功能

时间:2009-10-27 22:41:18

标签: c# .net sql user-defined-functions

我有这个用户定义的功能。

public partial class UserDefinedFunctions
{
    static int i;
    [SqlFunction(IsDeterministic = true)]
    public static SqlSingle f()
    {
        return new SqlSingle(1.3F);
    }
};

但只有在i只读时它才有效。为什么呢?

1 个答案:

答案 0 :(得分:2)

如果是可读写的,它也“有效”。

如果'not works'意味着程序集无法安装在SQL中,因为它包含静态字段,因为CLR Hosted Environment中解释的原因使用静态类变量是危险的:

  

考虑到这些因素,我们   不鼓励使用静态变量   和类的静态数据成员   用于SQL Server。对于SAFE和。{   EXTERNAL_ACCESS程序集,SQL Server   检查程序集的元数据   在CREATE ASSEMBLY时间并且失败了   如果是这样的话,就创造出   找到静态数据成员的使用   和变量。

将您的程序集标记为UNSAFE,以表明您了解与静态变量相关的风险,SQL将接受您的程序集。