SqlFunctionAttribute Class

 

Used to mark a method definition of a user-defined aggregate as a function in SQL Server. The properties on the attribute reflect the physical characteristics used when the type is registered with SQL Server.

Namespace:   Microsoft.SqlServer.Server
Assembly:  System.Data (in System.Data.dll)

System.Object
  System.Attribute
    Microsoft.SqlServer.Server.SqlFunctionAttribute
      Microsoft.SqlServer.Server.SqlMethodAttribute

<SerializableAttribute>
<AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple := False,
	Inherited := False)>
Public Class SqlFunctionAttribute
	Inherits Attribute

NameDescription
System_CAPS_pubmethodSqlFunctionAttribute()

An optional attribute on a user-defined aggregate, used to indicate that the method should be registered in SQL Server as a function. Also used to set the DataAccess, FillRowMethodName, IsDeterministic, IsPrecise, Name, SystemDataAccess, and TableDefinition properties of the function attribute.

NameDescription
System_CAPS_pubpropertyDataAccess

Indicates whether the function involves access to user data stored in the local instance of SQL Server.

System_CAPS_pubpropertyFillRowMethodName

The name of a method in the same class as the table-valued function (TVF) that is used by the TVF contract.

System_CAPS_pubpropertyIsDeterministic

Indicates whether the user-defined function is deterministic.

System_CAPS_pubpropertyIsPrecise

Indicates whether the function involves imprecise computations, such as floating point operations.

System_CAPS_pubpropertyName

The name under which the function should be registered in SQL Server.

System_CAPS_pubpropertySystemDataAccess

Indicates whether the function requires access to data stored in the system catalogs or virtual system tables of SQL Server.

System_CAPS_pubpropertyTableDefinition

A string that represents the table definition of the results, if the method is used as a table-valued function (TVF).

System_CAPS_pubpropertyTypeId

When implemented in a derived class, gets a unique identifier for this Attribute.(Inherited from Attribute.)

NameDescription
System_CAPS_pubmethodEquals(Object)

This API supports the product infrastructure and is not intended to be used directly from your code. Returns a value that indicates whether this instance is equal to a specified object.(Inherited from Attribute.)

System_CAPS_protmethodFinalize()

Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)

System_CAPS_pubmethodGetHashCode()

Returns the hash code for this instance.(Inherited from Attribute.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_pubmethodIsDefaultAttribute()

When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.(Inherited from Attribute.)

System_CAPS_pubmethodMatch(Object)

When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.(Inherited from Attribute.)

System_CAPS_protmethodMemberwiseClone()

Creates a shallow copy of the current Object.(Inherited from Object.)

System_CAPS_pubmethodToString()

Returns a string that represents the current object.(Inherited from Object.)

NameDescription
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Maps a set of names to a corresponding set of dispatch identifiers.(Inherited from Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Retrieves the type information for an object, which can be used to get the type information for an interface.(Inherited from Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

Retrieves the number of type information interfaces that an object provides (either 0 or 1).(Inherited from Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Provides access to properties and methods exposed by an object.(Inherited from Attribute.)

The following example shows an aggregate function that returns a list of files in the specified directory path.

<SqlFunction(FillRowMethodName:="FillFileRow")> _
Public Shared Function GetFileDetails(ByVal directoryPath As String) As IEnumerable

   Try

      Dim di As DirectoryInfo = new DirectoryInfo(directoryPath)
      return di.GetFiles()

   Catch dnf As DirectoryNotFoundException

      Dim message As String() = {dnf.ToString() }
      return message

   End Try
End Function

.NET Framework
Available since 2.0

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: