Generar objetos de base de datos con la integración de Common Language Runtime (CLR)

Puede generar objetos de base de datos mediante la integración de SQL Server con .NET Framework Common Language Runtime (CLR). El código administrado que se ejecuta dentro de Microsoft SQL Server se conoce como una "rutina CLR". Estas rutinas incluyen:

  • Funciones definidas por el usuario con valores escalares (UDF escalares)

  • Funciones definidas por el usuario con valores de tabla (TVF)

  • Procedimientos definidos por el usuario (UDP)

  • Desencadenadores definidos por el usuario

Las rutinas CLR tienen la misma estructura en código administrado. Están asignadas a los métodos público, estático (compartidos en Microsoft Visual Basic .NET) de una clase. Además de las rutinas, los tipos definidos por el usuario (UDT) y las funciones de agregado definidas por el usuario también se pueden definir mediante .NET Framework. Los UDT y los agregados definidos por el usuario están asignados a las clases de .NET Framework completas.

Cada tipo de rutina de .NET Framework tiene una declaración de Transact-SQL y se usa en cualquier parte de SQL Server en la que el equivalente de Transact-SQL se puede utilizar. Por ejemplo, los UDF escalares se pueden usar en cualquier expresión escalar. Un TVF se puede usar en cualquier cláusula FROM. Un procedimiento se puede invocar en una instrucción EXEC o bien, desde una aplicación cliente.

[!NOTA]

La ejecución de un objeto CLR (función definida por el usuario, tipo definido por el usuario o desencadenador) en el Common Language Runtime puede tener lugar en varios subprocesos (el plan paralelo), si el optimizador de consultas decide que es beneficioso. Sin embargo, si una función definida por el usuario tiene acceso a los datos, la ejecución estará en un plan de serie. Cuando se ejecuta en una versión de servidor anterior a SQL Server 2008, si una función definida por el usuario contiene parámetros LOB o valores devueltos, la ejecución también debe estar en un plan en serie.

En la siguiente tabla se enumeran los temas incluidos en esta sección.

Vea también

Otros recursos

Información general sobre integración CLR (Common Language Runtime)