Freigeben über


SqlMethodAttribute Klasse

Definition

Gibt die Verwendung und die Datenzugriffseigenschaften einer Methode oder Eigenschaft in einem benutzerdefinierten Typ (User-Defined Type, UDT) an. Die Eigenschaften des Attributs stellen nur die physikalischen Merkmale dar, die beim Registrieren des Typs in SQL Server verwendet werden.

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
Vererbung
SqlMethodAttribute
Attribute

Beispiele

Das folgende Beispiel zeigt eine UDT-Methode, die zur Angabe zugewiesen wird, dass die Methode nicht für NULL-Instanzen des Typs aufgerufen wird, dass die Methode den Zustand des Typs nicht ändert und dass die Methode nicht aufgerufen wird, wenn null Parameter für den Methodenaufruf angegeben werden.

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));
    }

Hinweise

Für eine Eigenschaft sollte die SqlMethodAttribute direkt für den Setter oder den Getter verwendet werden.

SqlMethodAttribute erbt von einem SqlFunctionAttribute, sodass SqlMethodAttribute die FillRowMethodName Felder und TableDefinition von geerbt werden SqlFunctionAttribute. Beachten Sie, dass es nicht möglich ist, eine Tabellenwertmethode zu schreiben, obwohl die Namen dieser Felder möglicherweise darauf hindeuten, dass dies möglich ist.

Konstruktoren

SqlMethodAttribute()

Ein Attribut eines benutzerdefinierten Typs (UDT), mit dem die Verwendung und Datenzugriffseigenschaften einer Methode oder einer Eigenschaft in einem UDT angegeben werden.

Eigenschaften

DataAccess

Gibt an, ob die Funktion Zugriff auf in der lokalen Instanz von SQL Server gespeicherte Benutzerdaten einschließt.

(Geerbt von SqlFunctionAttribute)
FillRowMethodName

Der Name der Methode in der Klasse, die verwendet wird, um eine Datenzeile in der Tabelle aufzufüllen, die von der Tabellenwertfunktion zurückgegeben wurde.

(Geerbt von SqlFunctionAttribute)
InvokeIfReceiverIsNull

Gibt an, ob SQL Server die Methode für NULL-Instanzen aufrufen soll.

IsDeterministic

Gibt an, ob die benutzerdefinierte Funktion deterministisch ist.

(Geerbt von SqlFunctionAttribute)
IsMutator

Gibt an, ob eine Methode in einem benutzerdefinierten Typ (UDT) eine Mutatormethode ist.

IsPrecise

Gibt an, ob die Funktion ungenaue Berechnungen beinhaltet, z. B. Gleitkommaoperationen.

(Geerbt von SqlFunctionAttribute)
Name

Der Name, mit dem die Funktion in SQL Server registriert werden soll.

(Geerbt von SqlFunctionAttribute)
OnNullCall

Gibt an, ob die Methode für einen benutzerdefinierten Typ (User-Defined Type, UDT) aufgerufen wird, wenn null-Eingabeargumente im Methodenaufruf angegeben werden.

SystemDataAccess

Gibt an, ob für die Funktion Zugriff auf Daten in den Systemkatalogen oder den virtuellen Systemtabellen von SQL Server erforderlich ist.

(Geerbt von SqlFunctionAttribute)
TableDefinition

Eine Zeichenfolge, die die Tabellendefinition der Ergebnisse darstellt, wenn die Methode als eine Tabellenwertfunktion verwendet wird.

(Geerbt von SqlFunctionAttribute)

Gilt für: