簡體   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