SqlFunctionAttribute Class
 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

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)

SystemObject
   SystemAttribute
    Microsoft.SqlServer.ServerSqlFunctionAttribute
       Microsoft.SqlServer.ServerSqlMethodAttribute

[SerializableAttribute]
[AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = false, 
	Inherited = false)]
public class SqlFunctionAttribute : Attribute
[SerializableAttribute]
[AttributeUsageAttribute(AttributeTargets::Method, AllowMultiple = false, 
	Inherited = false)]
public ref class SqlFunctionAttribute : Attribute
[<SerializableAttribute>]
[<AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = false,
    Inherited = false)>]
type SqlFunctionAttribute = 
    class
        inherit Attribute
    end
<SerializableAttribute>
<AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple := False,
	Inherited := False)>
Public Class SqlFunctionAttribute
	Inherits Attribute
NameDescription
System_CAPS_pubmethod SqlFunctionAttribute

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 , , , , , , and properties of the function attribute.

NameDescription
System_CAPS_pubproperty

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

System_CAPS_pubproperty

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

System_CAPS_pubproperty

Indicates whether the user-defined function is deterministic.

System_CAPS_pubproperty

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

System_CAPS_pubproperty

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

System_CAPS_pubproperty

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

System_CAPS_pubproperty

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

System_CAPS_pubproperty

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

NameDescription
System_CAPS_pubmethod Equals

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_protmethod Finalize

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_pubmethod GetHashCode

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

System_CAPS_pubmethod GetType

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

System_CAPS_pubmethod IsDefaultAttribute

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_pubmethod Match

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

System_CAPS_protmethod MemberwiseClone

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

System_CAPS_pubmethod ToString

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

NameDescription
System_CAPS_pubinterface System_CAPS_privmethod _AttributeGetIDsOfNames

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

System_CAPS_pubinterface System_CAPS_privmethod _AttributeGetTypeInfo

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

System_CAPS_pubinterface System_CAPS_privmethod _AttributeGetTypeInfoCount

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

System_CAPS_pubinterface System_CAPS_privmethod _AttributeInvoke

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.

[SqlFunctionAttribute(FillRowMethodName = "FillFileRow")]
public static IEnumerable GetFileDetails(string directoryPath)
{
   try
   {
      DirectoryInfo di = new DirectoryInfo(directoryPath);
      return di.GetFiles();
   }
   catch (DirectoryNotFoundException dnf)
   {
      return new string[1] { dnf.ToString() };
   }

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