SqlMethodAttribute 類別

定義

表示使用者定義型別 (UDT) 之方法或屬性的決定機制和資料存取屬性。 該屬性 (Attribute) 上的屬性 (Property) 反映使用 SQL Server 註冊型別時使用的實體特性。

public ref class SqlMethodAttribute sealed : Microsoft::Data::SqlClient::Server::SqlFunctionAttribute
[System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)]
[System.Serializable]
public sealed class SqlMethodAttribute : Microsoft.Data.SqlClient.Server.SqlFunctionAttribute
[System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)]
public sealed class SqlMethodAttribute : Microsoft.Data.SqlClient.Server.SqlFunctionAttribute
[<System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)>]
[<System.Serializable>]
type SqlMethodAttribute = class
    inherit SqlFunctionAttribute
[<System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=false, Inherited=false)>]
type SqlMethodAttribute = class
    inherit SqlFunctionAttribute
Public NotInheritable Class SqlMethodAttribute
Inherits SqlFunctionAttribute
繼承
SqlMethodAttribute
屬性

範例

下列範例顯示內容為的 UDT 方法,指出方法不會在型別的 Null 實例上叫用、方法不會變更型別的狀態,而且當參數提供給方法調用時 null ,將不會呼叫方法。

using Microsoft.Data.SqlClient.Server;
using System.Data.SqlTypes;
using System.Text;

[Serializable]
[Microsoft.Data.SqlClient.Server.SqlUserDefinedType(Format.Native,
     IsByteOrdered = true,
     Name = "Point", ValidationMethodName = "ValidatePoint")]
public struct Point : INullable
{

    private bool is_Null;
    private Int32 _x;
    private Int32 _y;

    // Distance from Point to the specified x and y values method.
    [SqlMethod(OnNullCall = false, IsMutator = false, InvokeIfReceiverIsNull = false)]
    public Double DistanceFromXY(Int32 iX, Int32 iY)
    {
        return Math.Sqrt(Math.Pow(iX - _x, 2.0) + Math.Pow(iY - _y, 2.0));
    }

備註

對於 屬性, SqlMethodAttribute 應該直接在 setter 或 getter 上使用 。

SqlMethodAttribute繼承自 SqlFunctionAttribute ,因此 SqlMethodAttributeFillRowMethodNameSqlFunctionAttribute 繼承 和 TableDefinition 欄位。 請注意,您無法撰寫資料表值方法,雖然這些欄位的名稱可能表示可能。

建構函式

SqlMethodAttribute()

使用者定義型別 (UDT) 上的屬性 (Attribute),用於表示 UDT 之方法或屬性 (Property) 的決定機制和資料存取屬性 (Property)。

屬性

DataAccess

指出函式是否涉及存取 SQL Server 之本機執行個體中儲存的使用者資料。

(繼承來源 SqlFunctionAttribute)
FillRowMethodName

用來填滿資料表值函式所傳回之資料表中資料列相同類別中方法的名稱。

(繼承來源 SqlFunctionAttribute)
InvokeIfReceiverIsNull

指示 SQL Server 是否應在 null 執行個體上叫用方法。

IsDeterministic

指出使用者定義函式是否具有決定性。

(繼承來源 SqlFunctionAttribute)
IsMutator

指出使用者定義型別 (UDT) 上的方法是否為更動子。

IsPrecise

指出此函數是否包含不精確的計算,如浮點運算。

(繼承來源 SqlFunctionAttribute)
Name

函式應在 SQL Server 中註冊的名稱。

(繼承來源 SqlFunctionAttribute)
OnNullCall

指出在方法引動過程中指定 null 輸入引數時是否呼叫使用者定義型別 (UDT) 上的方法。

SystemDataAccess

指出函式是否需要存取 SQL Server 之系統類別目錄或虛擬系統資料表中儲存的資料。

(繼承來源 SqlFunctionAttribute)
TableDefinition

字串,當方法用做資料表值函式 (TVF) 時,表示結果的資料表定義。

(繼承來源 SqlFunctionAttribute)

適用於