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

Puede generar objetos de la 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 devuelve valores, la ejecución también debe estar en un plan de serie. Para obtener más información, vea Procesar una consulta en paralelo.

Tenga en cuenta que Visual Studio .NET 2003 no puede usarse para la programación de la integración CLR. SQL Server incluye .NET Framework preinstalado y Visual Studio .NET 2003 no puede usar los ensamblados de .NET Framework 2.0.

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