次の方法で共有


SqlMethodAttribute クラス

定義

ユーザー定義型 (UDT) が持つメソッドまたはプロパティの決定論とデータ アクセス プロパティを示します。 この属性には、型を SQL Server に登録する際に使用される物理的な特性を反映した、いくつかのプロパティが格納されます。

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

次の例は、型の null インスタンスでメソッドが呼び出されないこと、メソッドが型の状態を変更しないこと、およびメソッドの呼び出しにパラメーターが指定されたときに null メソッドが呼び出されないことを示す UDT メソッドを示しています。

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 セッターまたはゲッターで直接使用する必要があります。

SqlMethodAttributeは からSqlFunctionAttribute継承されるためSqlMethodAttribute、 フィールドと TableDefinition フィールドは FillRowMethodName からSqlFunctionAttribute継承されます。 テーブル値メソッドを記述することはできませんが、これらのフィールドの名前によって可能であることが示唆される場合があることに注意してください。

コンストラクター

SqlMethodAttribute()

ユーザー定義型 (UDT) に対する属性。UDT が持つメソッドまたはプロパティの決定論とデータ アクセス プロパティを指定するときに使用します。

プロパティ

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)

適用対象