Tipos de procedimientos almacenados

En Microsoft SQL Server hay disponibles varios tipos de procedimientos almacenados. En este tema se describen de forma resumida los tipos de procedimientos almacenados y se incluyen ejemplos de cada uno de ellos.

Procedimientos almacenados definidos por el usuario

Los procedimientos almacenados son módulos o rutinas que encapsulan código para su reutilización. Un procedimiento almacenado puede incluir parámetros de entrada, devolver resultados tabulares o escalares y mensajes para el cliente, invocar instrucciones de lenguaje de definición de datos (DDL) e instrucciones de lenguaje de manipulación de datos (DML), así como devolver parámetros de salida. En SQL Server 2008 existen dos tipos de procedimientos almacenados: Transact-SQL o CLR.

Transact-SQL

Un procedimiento almacenado Transact-SQL es una colección guardada de instrucciones Transact-SQL que puede tomar y devolver los parámetros proporcionados por el usuario. Por ejemplo, un procedimiento almacenado puede contener las instrucciones necesarias para insertar una nueva fila en una o más tablas según la información suministrada por la aplicación cliente o es posible que el procedimiento almacenado devuelva datos de la base de datos a la aplicación cliente. Por ejemplo, una aplicación Web de comercio electrónico puede utilizar un procedimiento almacenado para devolver información acerca de determinados productos en función de los criterios de búsqueda especificados por el usuario en línea.

CLR

Un procedimiento almacenado CLR es una referencia a un método Common Language Runtime (CLR) de Microsoft .NET Framework que puede aceptar y devolver parámetros suministrados por el usuario. Se implementan como métodos públicos y estáticos en una clase de un ensamblado de .NET Framework.Para obtener más información, vea Procedimientos almacenados CLR (en inglés).

Procedimientos almacenados extendidos

Nota importanteImportante

Esta característica se quitará en una versión futura de Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan. En su lugar, utilice la integración CLR.

Los procedimientos almacenados extendidos le permiten crear sus propias rutinas externas en un lenguaje de programación como pueda ser C. Los procedimientos almacenados extendidos son DLL que una instancia de Microsoft SQL Server puede cargar y ejecutar dinámicamente. Los procedimientos almacenados extendidos se ejecutan directamente en el espacio de dirección de una instancia de SQL Server y se programan con la API Procedimiento almacenado extendido de SQL Server.

Nota

La integración CLR es una alternativa más consolidada y segura para escribir procedimientos almacenados extendidos.

Procedimientos almacenados del sistema

Muchas de las actividades administrativas en SQL Server se realizan mediante un tipo especial de procedimiento conocido como procedimiento almacenado del sistema.Por ejemplo, sys.sp_changedbowner es un procedimiento almacenado del sistema. Los procedimientos almacenados del sistema se almacenan físicamente en la base de datos Resource e incluyen el prefijo sp_. Los procedimientos almacenados del sistema aparecen de forma lógica en el esquema sys de cada base de datos definida por el usuario y el sistema. En SQL Server 2008, los permisos GRANT, DENY y REVOKE se pueden aplicar a los procedimientos almacenados del sistema.Para obtener una lista completa de los procedimientos almacenados del sistema, vea Procedimientos almacenados del sistema (Transact-SQL).

SQL Server admite los procedimientos almacenados del sistema que proporcionan una interfaz desde SQL Server a los programas externos para varias actividades de mantenimiento. Estos procedimientos almacenados extendidos utilizan el prefijo xp_. Para obtener una lista completa de los procedimientos almacenados extendidos, vea Procedimientos almacenados extendidos generales (Transact-SQL).