Mejoras en la programación del motor de base de datos

Microsoft SQL Server 2005 ofrece varias mejoras y nuevas características en el Database Engine (Motor de base de datos) que aumentan las posibilidades y la productividad de los programadores. Pueden escribirse objetos de base de datos en lenguajes basados en Microsoft .NET Framework, como Microsoft Visual C#. El desarrollo y la depuración están integrados en el entorno de Microsoft Visual Studio, lo que permite a los programadores usar las mismas herramientas para desarrollar objetos de base de datos que las que usan para desarrollar componentes y servicios basados en .NET Framework. Se ha ampliado el lenguaje Transact-SQL con una serie de características como, por ejemplo, un control de errores mejorado y compatibilidad con consultas recursivas.

Además, las interfaces de acceso a datos que las aplicaciones utilizan para obtener acceso a las instancias del Database Engine (Motor de base de datos) se han mejorado para aumentar la productividad de los programadores. Para obtener más información, vea Mejoras en las interfaces de acceso a datos.

Las mejoras más importantes que se han realizado en el lenguaje Transact-SQL se muestran a continuación. Para obtener información adicional sobre las nuevas características de Transact-SQL, vea Novedades y mejoras en Transact-SQL (Transact-SQL).

Mejoras de programación

Microsoft .NET Framework: Integración de Common Language Runtime

Ahora, Common Language Runtime (CLR) de Microsoft .NET Framework se aloja en el SQL Server Database Engine (Motor de base de datos de SQL Server). Este entorno de integración de CLR admite objetos de base de datos de procedimiento, como funciones, procedimientos almacenados y desencadenadores escritos en lenguajes basados en .NET Framework, como Microsoft Visual C# y Visual Basic .NET. Los lenguajes basados en .NET Framework admiten una lógica y una serie de características no disponibles en el lenguaje Transact-SQL, lo que significa que ahora puede incorporarse una lógica más compleja en los objetos de base de datos. En los lenguajes basados en .NET Framework, pueden escribirse también tipos y agregados definidos por el usuario para crear tipos de datos más complejos que los que había disponibles en versiones anteriores de SQL Server.

El entorno de programación integrado CLR se encuentra integrado en el entorno de desarrollo de Visual Studio. Los programadores utilizan las mismas herramientas para desarrollar y depurar objetos de base de datos que las que utilizaban para desarrollar componentes o servicios .NET de cliente o de nivel medio.

Para obtener más información, vea Introduction to Common Language Runtime (CLR) Integration.

Microsoft .NET Framework: Agregados definidos por el usuario

Las funciones de agregado definidas por el usuario que están escritas en un lenguaje basado en .NET Framework amplían las funciones de agregado básicas, como SUM, MIN y MAX, incluidas en Transact-SQL. Una función de agregado es una función que procesa varios valores de datos y que devuelve un único valor. En lugar de recuperar todo un conjunto de resultados para una aplicación y de ejecutar una lógica de agregado compleja en la aplicación, una función de agregado .NET Framework puede ejecutar la lógica en la instancia del Database Engine (Motor de base de datos) y devolver a la aplicación únicamente el valor final.

Para obtener más información, vea CLR User-Defined Aggregates.

Microsoft .NET Framework: Tipos definidos por el usuario

Los tipos definidos por el usuario (UDT) CLR le permiten implementar tipos de datos de base de datos en cualquiera de los lenguajes compatibles con CLR de .NET Framework. Los tipos definidos por el usuario CLR se implementan como clases de un lenguaje basado en .NET Framework y pueden tener estructuras complejas y un comportamiento definido por los campos, los métodos y las propiedades de la clase. Los tipos definidos por el usuario CLR se integran con el sistema de tipos del Database Engine (Motor de base de datos) y pueden utilizarse en los mismos contextos donde se utilizan los tipos integrados.

Para obtener más información, vea CLR User-Defined Types.

Microsoft .NET Framework: Procedimientos almacenados, desencadenadores y funciones definidas por el usuario

Los objetos de procedimiento de base de datos pueden escribirse en lenguajes basados en .NET Framework de modo que incorporen una lógica más compleja que la que admite el lenguaje Transact-SQL. Los programadores desarrollan los objetos utilizando el mismo lenguaje y entorno de desarrollo que el que utilizan para desarrollar componentes y servicios de .NET Framework.

Para obtener más información, vea CLR Stored Procedures, CLR Triggers, CLR User-Defined Functions.

Acceso Web: Acceso HTTP SOAP nativo

Pueden configurarse instancias del Database Engine (Motor de base de datos) con extremos o direcciones HTTP donde puedan enviarse solicitudes SOAP desde las aplicaciones. La instancia del Database Engine (Motor de base de datos) recibe los paquetes directamente, sin necesidad de configurar ningún servicio de nivel medio, como un servidor de Servicios de Microsoft Internet Information Server (IIS).

Para obtener más información, vea Usar servicios Web XML nativos en SQL Server 2005.

Mejoras de Transact-SQL: Nuevo tipo de datos XML

El Database Engine (Motor de base de datos) incluye un nuevo tipo de datos xml compatible con el almacenamiento de documentos y fragmentos XML en bases de datos. Las instancias XML pueden almacenarse en columnas, parámetros de procedimientos almacenados o variables creadas mediante el tipo xml.

Para obtener más información, vea Tipo de datos xml.

Mejoras de Transact-SQL: Mejoras de FOR XML

Puede anidar instrucciones FOR XML para crear una jerarquía de documentos XML. Los resultados de una instrucción FOR XML pueden almacenarse en una columna, en un parámetro de un procedimiento almacenado o en una variable definida mediante el nuevo tipo de datos xml.

Para obtener más información, vea Nuevas características de FOR XML.

Mejoras de Transact-SQL: Control de errores mejorado

Los programadores de codifican lotes, procedimientos almacenados, desencadenadores y funciones definidas por el usuario de Transact-SQL, pueden utilizar la lógica TRY-CATCH ya conocida para capturar y controlar condiciones de error.

Para obtener más información, vea Controlar errores del motor de base de datos.

Mejoras de Transact-SQL: Nuevas vistas de metadatos

El SQL Server 2005 Database Engine (Motor de base de datos de SQL Server 2005) ofrece dos nuevos conjuntos de vistas para realizar consultas en los metadatos. Las vistas del catálogo del sistema proporcionan información sobre los objetos, como tablas, procedimientos almacenados y restricciones, que se definen en bases de datos de SQL Server. Las vistas de administración dinámica proporcionan información sobre el estado actual de una instancia del Database Engine (Motor de base de datos). Las vistas de administración dinámica exponen información de estructuras de la memoria que no se han conservado en el disco, como información sobre bloqueos, subprocesos y tareas.

Para obtener más información, vea Consultar el catálogo del sistema de SQL Server.

Mejoras de Transact-SQL: Funciones de categoría

El Database Engine (Motor de base de datos) incluye una nueva categoría de funciones denominadas funciones de categoría. Las funciones que componen esta categoría son las siguientes:

  • RANK
  • DENSE_RANK
  • NTILE
  • ROW_NUMBER

Estas funciones devuelven un valor de categoría para cada una de las filas de una partición.

Para obtener más información acerca de una lista de estas funciones, vea Funciones de categoría (Transact-SQL).

Mejoras de Transact-SQL: Desencadenadores del lenguaje de definición de datos (DDL)

El Database Engine (Motor de base de datos), además de ser compatible con los desencadenadores que se activan mediante instrucciones del lenguaje de manipulación de datos que modifican los datos (INSERT, UPDATE y DELETE), incluye una nueva clase de desencadenadores que se activan mediante instrucciones DDL que modifican los objetos de base de datos, como las instrucciones que comienzan por CREATE, ALTER o DROP. Los desencadenadores DDL pueden utilizarse para auditar o regular los cambios realizados en un esquema de base de datos.

Para obtener más información, vea Desencadenadores DDL.

Mejoras de Transact-SQL: Notificaciones de eventos

Puede programarse un nuevo tipo de objeto en el Database Engine (Motor de base de datos): las notificaciones de eventos. Las notificaciones de eventos envían información sobre las instrucciones DDL de Transact-SQL y los eventos de traza de SQL a un servicio de Service Broker. Las notificaciones de eventos pueden utilizarse para registrar y revisar los cambios o la actividad que tengan lugar en la base de datos. Las notificaciones de eventos se ejecutan de forma asincrónica y pueden ofrecer una alternativa de programación a los desencadenadores DML, a los desencadenadores DDL y a la Traza de SQL.

Para obtener más información, vea Implementar notificaciones de eventos.

Mejoras de Transact-SQL: Extensiones de procesamiento de cola

Hay tres mejoras de Transact-SQL que simplifican la creación de aplicaciones de cola de mensajes en sistemas de automatización de procesos empresariales, débilmente acoplados, confiables y para Internet. Ahora, las instrucciones INSERT, UPDATE y DELETE admiten una cláusula OUTPUT que devuelve datos en función de las filas modificadas por la instrucción. Ahora, READPAST puede especificarse en instrucciones UPDATE y DELETE, lo que permite que estas instrucciones omitan filas de la cola mantenidas por otras tareas y tomen la siguiente fila disponible de una cola.

Para obtener más información, vea OUTPUT (cláusula de Transact-SQL) y Sugerencias de bloqueo.

Mejoras de Transact-SQL: Modelo de programación unificado para grandes objetos

En las versiones anteriores de SQL Server, las cadenas largas de más de 8.000 bytes tenían que almacenarse en tipos de datos text, ntext e image, que tenían un modelo de programación distinto al de los tipos de datos de cadenas más cortas (char, nchar, varchar, nvarchar, binary y varbinary). Ahora, el Database Engine (Motor de base de datos) admite una especificación de longitud MAX para los tipos de datos más cortos. Cuando se especifica MAX, los tipos de datos pueden almacenar cadenas del mismo tamaño que los valores text, ntext e image de hasta 2 gigabytes (GB), pero se procesan del mismo modo que cuando almacenaban cadenas más cortas.

Para obtener más información, vea Usar tipos de datos de valores grandes.

Mejoras de Transact-SQL: Consultas recursivas

Una expresión de tabla común (CTE) es un conjunto de resultados que se almacena temporalmente durante la ejecución de una instrucción SELECT, INSERT, UPDATE o DELETE. El uso de una CTE permite utilizar consultas recursivas y puede simplificar la lógica mediante la sustitución del uso de tablas o vistas temporales.

Para obtener más información, vea Usar expresiones de tabla comunes.

Mejoras de Transact-SQL: Nuevo operador APPLY

El operador APPLY admite la invocación de una expresión con valores de tabla (una función con valores de tabla o subconsulta) para cada una de las filas devueltas por una referencia de tabla externa. La expresión con valores de tabla se evalúa para cada una de las filas de la referencia de tabla externa.

Para obtener más información, vea Usar APPLY.

Mejoras de Transact-SQL: Nuevos operadores PIVOT y UNPIVOT

Los nuevos operadores PIVOT y UNPIVOT hacen girar los conjuntos de resultados, de modo que las columnas se convierten en filas y viceversa. Esta operación se denomina girar datos o crear informes de tablas de referencias cruzadas. En las versiones anteriores de SQL Server se podían realizar estas operaciones, pero exigían una lógica compleja que ahora se ha simplificado con el uso de PIVOT y UNPIVOT.

Para obtener más información, vea Usar PIVOT y UNPIVOT.

Mejoras de Transact-SQL: Notificaciones de consulta

Las notificaciones de consulta permiten que una aplicación almacene en caché un conjunto de resultados y solicite al Database Engine (Motor de base de datos) que le notifique cualquier modificación de alguno de los datos subyacentes realizada por otra aplicación. Las aplicaciones que utilizan notificaciones de consulta no tienen que comprobar periódicamente el estado de los datos de la base de datos. Sólo tienen que validar los datos si el Database Engine (Motor de base de datos) notifica a las aplicaciones que se ha producido un cambio.

Para obtener más información, vea Usar notificaciones de consulta.

Mejoras de Transact-SQL: Operaciones masivas en OPENROWSET

Ahora, OPENROWSET admite una operación BULK para copiar datos de forma masiva desde archivos de datos. Las operaciones masivas OPENROWSET se controlan mediante nuevas sugerencias de tabla y opciones masivas, como BULK_BATCHSIZE y FORMATFILE. La nueva cláusula bulk_column_alias admite la asignación de nombres de columnas para operaciones masivas de datos.

Para obtener más información, vea OPENROWSET (Transact-SQL), Sugerencias de tabla (Transact-SQL).

Mejoras de Transact-SQL: Mejoras de TOP

Se han producido mejoras en el operador TOP para que tome una expresión numérica (como un nombre de variable) en lugar de tomar únicamente un número entero para especificar el número de filas devueltas por el operador. Ahora, TOP también puede especificarse en instrucciones INSERT, UPDATE y DELETE.

Para obtener más información, vea TOP (Transact-SQL).

Mejoras de Transact-SQL: Consulta distribuida

Ahora, la instrucción EXECUTE admite una cláusula AT LinkedServer que especifica que un procedimiento almacenado se ejecute en un servidor vinculado. El predicado de texto CONTAINS admite nombres de cuatro partes para ejecutar consultas en servidores vinculados. Las consultas distribuidas también admiten los nuevos tipos de datos de objetos grandes nvarchar(max), varchar(max) y varbinary(max). Se han agregado nuevos eventos de Traza de SQL para ayudar a analizar la interacción de las consultas distribuidas y los proveedores OLE DB.

Para obtener más información, vea EXECUTE (Transact-SQL), CONTAINS (Transact-SQL), Asignación de tipos de datos con consultas distribuidas, y OLEDB (categoría de eventos).

Mejoras de Transact-SQL: TABLESAMPLE

La nueva cláusula TABLESAMPLE limita el número de filas procesadas por una consulta. A diferencia de TOP, que sólo devuelve las primeras filas de un conjunto de resultados, TABLESAMPLE devuelve las filas seleccionadas del conjunto de filas procesadas por la consulta.

Para obtener más información, vea Limitar los conjuntos de resultados con TABLESAMPLE.

Mejoras de Transact-SQL: Nuevas restricciones de integridad CASCADE

Ahora, la cláusula REFERENCES admite las acciones de integridad referencial en cascada SET NULL y SET DEFAULT. SET NULL especifica que las acciones de integridad referencial en cascada establezcan las claves externas en NULL. SET DEFAULT especifica que las claves externas se establezcan en el valor predeterminado definido para la columna.

Para obtener más información, vea Restricciones de integridad referencial en cascada.

Mejoras de Transact-SQL: Los datos de desbordamiento pueden superar el tamaño de página

Las filas podrán sobrepasar el límite de 8.060 bytes en caso de que contengan columnas de longitud variable que utilicen los tipos de datos nvarchar, varchar, varbinary y sql_variant. Si los anchos combinados de estas columnas de longitud variable hacen que la fila sobrepase el límite de tamaño de página, el Database Engine (Motor de base de datos) podrá mover los datos de las columnas de longitud variable a páginas independientes.

Para obtener más información, vea Datos de desbordamiento de fila superiores a 8 KB.

Programación de administración de bases de datos: Nueva API de objetos de administración de SQL (SMO)

El modelo de objetos SMO amplía y reemplaza el modelo de objetos de administración distribuida (DMO). El modelo de objetos SMO proporciona clases para configurar y administrar instancias del Database Engine (Motor de base de datos). El modelo de Objetos de administración de réplica (RMO) complementa al modelo de objetos SMO; proporciona clases para configurar y administrar la réplica.

Para obtener más información, vea SQL Server Management Objects (SMO).

Programación de administración de bases de datos: Nuevos proveedores WMI de SQL Server

El proveedor WMI para la Administración de equipos es un proveedor de instancias. El objetivo de esta capa es proporcionar un modo unificado de interactuar con las llamadas a la API que administran las operaciones del Registro solicitadas por la funcionalidad de la herramienta de red del servidor y del cliente y que proporcionan un mejor control y manipulación de los servicios de SQL seleccionados del complemento del Administrador de equipos.

Para obtener más información, vea WMI Provider for Configuration Management.

El proveedor WMI para eventos del servidor le permite utilizar el Instrumental de administración de Windows (WMI) para supervisar eventos en SQL Server. El proveedor trabaja convirtiendo SQL Server en un objeto WMI administrado. Todos los eventos que puedan generar una notificación de eventos en SQL Server se aprovechan en el WMI que utiliza el proveedor. Además, como una aplicación de administración que interactúa con el WMI, el Agente SQL Server puede responder a estos eventos aumentando el ámbito de los eventos cubiertos por el Agente SQL Server en versiones anteriores.

Para obtener más información, vea WMI Provider for Server Events.

Vea también

Conceptos

Mejoras en el motor de base de datos

Ayuda e información

Obtener ayuda sobre SQL Server 2005