Compartir a través de


Tipos CLR definidos por el usuario

Se aplica a: SQL Server

SQL Server permite crear objetos de base de datos programados en un ensamblado creado en Common Language Runtime (CLR) de .NET Framework. Los objetos de base de datos que pueden aprovechar el complejo modelo de programación que proporciona CLR incluyen desencadenadores, procedimientos almacenados, funciones, funciones de agregado y tipos.

Nota:

La capacidad de ejecutar código CLR se establece en OFF de forma predeterminada en SQL Server. CLR se puede habilitar mediante el procedimiento almacenado del sistema sp_configure .

A partir de SQL Server 2005 (9.x), puede usar tipos definidos por el usuario (UDT) para ampliar el sistema de tipos escalares del servidor, lo que permite el almacenamiento de objetos CLR en una base de datos de SQL Server. Los UDT pueden contener varios elementos y pueden tener comportamientos, diferenciandolos de los tipos de datos de alias tradicionales que constan de un único tipo de datos del sistema de SQL Server.

Dado que el sistema tiene acceso a los UDT como un conjunto, su uso para los tipos de datos complejos puede causar un impacto negativo en el rendimiento. Normalmente, los datos complejos se modelan mejor mediante filas tradicionales y tablas. Las UDT de SQL Server son adecuadas para lo siguiente:

  • Fecha, tiempo, moneda y tipos numéricos extendidos

  • Aplicaciones geoespaciales

  • Datos codificados o cifrados

El proceso de desarrollo de UDT en SQL Server consta de los pasos siguientes:

  1. Codigo y compile el ensamblado que define el UDT. Los UDT se definen mediante cualquiera de los lenguajes admitidos en Common Language Runtime (CLR) de .NET Framework que generan código comprobable. Esto incluye Visual C# y Visual Basic .NET. Los datos se exponen como los campos y propiedades de una clase o estructura de .NET Framework, y los métodos de la clase o estructura definen los comportamientos.

  2. Registre el ensamblado . Los UDT se pueden implementar a través de la interfaz de usuario de Visual Studio en un proyecto de base de datos o mediante la instrucción CREATE ASSEMBLY de Transact-SQL, que copia el ensamblado que contiene la clase o estructura en una base de datos.

  3. Cree el UDT en SQL Server. Una vez cargado un ensamblado en una base de datos host, se usa la instrucción CREATE TYPE de Transact-SQL para crear un UDT y exponer los miembros de la clase o estructura como miembros del UDT. Los UDT únicamente existen en el contexto de una base de datos única y, una vez registrados, no dependen de ninguno de los archivos externos a partir de los que se crearon.

    Nota:

    Antes de SQL Server 2005 (9.x), no se admiten udT creados a partir de ensamblados de .NET Framework. Sin embargo, todavía puede usar tipos de datos de alias de SQL Server mediante sp_addtype. La sintaxis CREATE TYPE se puede usar para crear tipos de datos nativos definidos por el usuario y UDT de SQL Server.

  4. Cree tablas, variables o parámetros mediante el UDT a partir de SQL Server 2005 (9.x), un tipo definido por el usuario se puede usar como definición de columna de una tabla, como una variable en un lote de Transact-SQL, o como argumento de una función de Transact-SQL o un procedimiento almacenado.

En esta sección

Crear un tipo definido por el usuario
Describe cómo crear los UDT.

Registrar tipos definidos por el usuario en SQL Server
Describe cómo registrar y administrar udT en SQL Server.

Trabajar con tipos definidos por el usuario en SQL Server
Describe cómo crear consultas mediante los UDT.

Acceso a tipos definidos por el usuario en ADO.NET
Describe cómo trabajar con udT mediante el proveedor de datos de .NET Framework para SQL Server en ADO.NET.