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
属性

示例

以下示例演示了一个 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因此SqlMethodAttributeSqlFunctionAttribute继承 FillRowMethodNameTableDefinition 字段。 请注意,无法编写表值方法,尽管这些字段的名称可能表明有可能。

构造函数

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)

适用于