Share via


Ventajas de utilizar código administrado para crear objetos de base de datos

Además del lenguaje de programación Transact-SQL, puede usar los lenguajes de .NET Framework para crear objetos de base de datos, así como para recuperar y actualizar los datos de las bases de datos de SQL Server. En los proyectos de Visual Basic o Visual C#, puede crear procedimientos almacenados, desencadenadores, agregados, funciones definidas por el usuario y tipos definidos por el usuario. Los objetos de base de datos que se escriben en código administrado se denominan objetos de Common Language Runtime de SQL Server, u objetos CLR de SQL.

Nota

De forma predeterminada, la característica de integración de Common Language Runtime (CLR) está desactivada en SQL Server. Para usar elementos de proyecto de SQL Server, se debe habilitar la integración con CLR. Con este fin, se usa la opción clr enabled del procedimiento almacenado sp_configure. Para obtener más información, vea el tema clr enabled (opción) en el sitio web de Microsoft.

En la siguiente lista se ofrece un resumen de las ventajas de usar un lenguaje de .NET Framework en vez de Transact-SQL:

  • Modelo de programación mejorada: los lenguajes de .NET Framework proporcionan construcciones y funcionalidades previamente no disponibles para los desarrolladores de SQL Server.

  • Seguridad mejorada: el código administrado ejecuta un entorno de Common Language Runtime que se hospeda en el motor de la base de datos. De esta forma, los objetos de base de datos de .NET Framework están más seguros que los procedimientos almacenados extendidos disponibles en versiones anteriores de SQL Server. Al usar objetos de base de datos creados en Visual Basic o Visual C#, la seguridad de acceso del código de esos lenguajes se combina con los permisos basados en usuario de SQL Server.

  • Tipos y agregados definidos por el usuario   los tipos y agregados definidos por el usuario son dos objetos de base de datos administrados que expanden la capacidad de almacenamiento y consulta de SQL Server.

  • Entorno de desarrollo común: el desarrollo de la base de datos se integra al entorno de desarrollo de Microsoft Visual Studio. Los desarrolladores utilizan las mismas herramientas para desarrollar y depurar objetos de base de datos y scripts que las que usan para escribir componentes y servicios de .NET Framework de nivel medio o nivel de cliente.

  • Mejor rendimiento: algunas funciones, como las que ejecutan operaciones matemáticas en cada fila de una base de datos, pueden ofrecer un mejor rendimiento si son ensamblados compilados a partir de un proyecto de Visual Basic o Visual C# en lugar de si se escriben en Transact-SQL, que es código interpretado. Por ejemplo, se lograrán mejoras de rendimiento para las funciones, sobre todo para aquéllas que realizan operaciones con números enteros. Sin embargo, los procedimientos almacenados que sólo tienen acceso a datos no funcionarán mejor.

  • Riqueza del lenguaje   Visual Basic o Visual C# proporciona funcionalidad que no está disponible en Transact-SQL, como matrices, control de excepciones sofisticado y reusabilidad de código.

  • Reusabilidad de código: es posible crear y distribuir con mayor facilidad una biblioteca de ensamblados administrados que distribuir un script de Transact-SQL.

  • Extensibilidad mediante Visual Basic o Visual C# puede crear dos objetos de base de datos que no se pueden crear con Transact-SQL: agregados y tipos definidos por el usuario.

  • Utilización de conocimientos existentes: es posible utilizar y mejorar sus conocimientos en los lenguajes y desarrollar entornos en los que ya existe experiencia para crear objetos de base de datos.

  • Experiencia del programador más enriquecida: al desarrollar objetos de base de datos mediante la plantilla de proyecto de SQL Server, se cuenta con integración completa con el sistema de proyectos. Esto incluye compilación, depuración e implementación a varios servidores.

  • Estabilidad y confiabilidad: los objetos de base de datos que se crean con Visual Basic o Visual C# son más seguros, estables, sólidos y confiables que los procedimientos almacenados extendidos, que podrían generar pérdidas de memoria u otros problemas que reducen el rendimiento y la confiabilidad del servidor. Cuando se ejecutan procedimientos almacenados creados en Visual Basic o Visual C#, el procedimiento almacenado no se ocupa de la administración de memoria ni del subprocesamiento y, por lo tanto, se controlan de manera más sólida.

Procedimientos almacenados y desencadenadores

Los procedimientos almacenados son una colección precompilada de instrucciones de programación, que realizan operaciones en la base de datos y que se almacenan bajo un nombre y se procesan como una unidad. Para obtener más información sobre los procedimientos almacenados, vea la documentación de SQL Server.

Un desencadenador es un tipo especial de procedimiento almacenado que se provoca al modificar los datos de una tabla especificada mediante una o más de las operaciones de modificación de datos: UPDATE, INSERT o delete. También puede crear desencadenadores de nivel de base de datos que se activen en respuesta a las instrucciones del lenguaje de definición de datos (DDL). Estos desencadenadores se pueden usar para realizar tareas administrativas en la base de datos como auditar y regular operaciones de base de datos. Para obtener más información sobre los desencadenadores, vea la documentación de SQL Server.

La riqueza de lenguaje de Visual Basic y Visual C# mejora el desarrollo de desencadenadores y procedimientos almacenados, sobre todo cuando se implementa lógica de procedimientos compleja necesaria para aplicar reglas de negocios. Además, .NET Framework contiene muchas bibliotecas. De especial interés son aquéllas que le habilitan para administrar muchos aspectos de criptografía, las bibliotecas matemáticas extensas y el acceso externo a los servicios Web, archivos y sistemas de comunicación entre empresas.

Funciones

Las funciones operan en uno o más valores para devolver un valor escalar o una tabla. Para obtener más información sobre los tipos de funciones que proporciona el lenguaje de programación de Transact-SQL, vea la documentación de SQL Server.

Al igual que en el caso de los procedimientos almacenados y los desencadenadores, el desarrollo de las funciones se ve mejorado por la riqueza del lenguaje de Visual Basic y Visual C#, y el acceso a las numerosas bibliotecas que .NET Framework contiene.

Agregados

Las funciones de agregado se utilizan para resumir todos los datos en una tabla. Realizan un cálculo en un conjunto de valores y devuelven un valor escalar único. Para obtener más información sobre las funciones de agregado que proporciona el lenguaje de programación de Transact-SQL, vea la documentación de SQL Server.

Para complementar esas funciones de agregado, puede definir nuevos agregados que realicen funciones aritméticas más complejas. Por ejemplo, puede realizar un cálculo de los datos en varias filas y devolver un valor o crear una cadena concatenada.

Tipos definidos por el usuario

Los tipos especifican la naturaleza de los datos. Para obtener información sobre el conjunto de tipos de datos del sistema que se proporciona con SQL Server, vea la documentación de SQL Server.

Con Visual Basic y Visual C#, puede definir nuevos tipos, de modo que no estará limitado a los tipos predefinidos que se proporcionan con SQL Server. Es posible crear tipos simples como códigos postales o más complejos para analizar la información devuelta de una transacción de tarjetas de crédito. Además, cuando se trabaja con tipos definidos por el usuario, es posible interpretar los datos y manipularlos en el cliente SQL y en SQL Server; mediante ADO.NET, se puede descargar un ensamblado que contenga una definición de tipo de SQL Server y usarla para examinar los datos en el cliente SQL.

Vea también

Tareas

Cómo: Crear un proyecto para objetos de base de datos que usan la integración de Common Language Runtime de SQL Server

Cómo: Crear y ejecutar un procedimiento almacenado de SQL Server mediante la integración de Common Language Runtime

Cómo: Crear y ejecutar un desencadenador de SQL Server mediante la integración de Common Language Runtime

Cómo: Crear y ejecutar un agregado de SQL Server mediante la integración de Common Language Runtime

Cómo: Crear y ejecutar una función definida por el usuario de SQL Server mediante la integración de Common Language Runtime

Cómo: Crear y ejecutar un tipo definido por el usuario de SQL Server mediante la integración de Common Language Runtime

Tutorial: Crear un procedimiento almacenado en código administrado

Cómo: Depurar un procedimiento almacenado de SQL CLR

Referencia

Atributos para proyectos de base de datos CLR de SQL Server y objetos de base de datos

Conceptos

Introducción a la integración de CLR y SQL Server (ADO.NET)

Ventajas de utilizar código administrado para crear objetos de base de datos