SqlMethodAttribute クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ユーザー定義型 (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
- 継承
- 属性
例
次の例は、型の 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 |
|
SystemDataAccess |
その関数で、SQL Server のシステム カタログまたは仮想システム テーブルに格納されたデータにアクセスする必要があるかどうかを示します。 (継承元 SqlFunctionAttribute) |
TableDefinition |
メソッドをテーブル値関数 (TVF) として使用する場合、結果のテーブル定義を表す文字列。 (継承元 SqlFunctionAttribute) |