繁体   English   中英

用户定义的功能

[英]user defined functions

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

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

但这仅在i为只读的情况下有效。 为什么?

如果是读写的,它也可以工作。

如果“不起作用”是指由于程序集包含静态字段而无法在SQL中安装,则出于CLR托管环境中所述的原因,使用静态类变量很危险:

考虑到这些考虑因素,我们不鼓励使用SQL Server中使用的类的静态变量和静态数据成员。 对于SAFEEXTERNAL_ACCESS程序集,SQL Server在CREATE ASSEMBLY时检查程序集的元数据,如果发现使用了静态数据成员和变量,则该程序集的创建将失败。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM