1. CONTENIDO
Definición:
Conjuntode comandos que pueden ser ejecutados directamente en
el servidor, es decir, será ejecutado por el servidor de Base de Datos y
no por el programa cliente que lo accede, permitiendo la ejecución de
una acción o conjunto de acciones específicas.
4.
Sintaxis
CREATE PROCEDURE<nombre_procedure> [@param1 <tipo>, ...]
AS
Para crear un procedimiento almacenado debemos emplear la
sentencia CREATE PROCEDURE.
5.
Administración deProcedimientos Almacenados
1. Creación
Para crear un procedimiento en el Editor de consultas
1. En el Explorador de objetos, conéctese a una
instancia del Motor de base de datos.
2. En
consulta.
3. Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic
en Ejecutar. En este ejemplo se crea el mismo procedimiento almacenado que
antes con otro nombre diferente.
el menú Archivo, haga clic en Nueva
CREATE
HumanResources.uspGetEmployeesTest2
@LastName nvarchar(50),
@FirstName nvarchar(50) AS
PROCEDURE
SET NOCOUNT ON;
SELECT FirstName, LastName, Department
FROM HumanResources.vEmployeeDepartmentHistory
WHERE
@LastName FirstName = @FirstName AND LastName =
AND EndDate IS NULL;
GO
6.
2. Modificación
Para modificarun procedimiento en el Editor de consultas
En el Explorador de objetos, conéctese a una instancia del Motor de base de datos y expándala.
Expanda Bases de datos, expanda la base de datos a la que pertenece el procedimiento. O bien,
en la barra de herramientas, seleccione la base de datos en la lista de bases de datos disponibles.
En este ejemplo, seleccione la base de datos AdventureWorks2012.
En el menú Archivo, haga clic en Nueva consulta.
Copie y pegue el ejemplo siguiente en el editor de consultas.
El ejemplo crea el procedimiento uspVendorAllInfo, que devuelve los nombres de todos los proveedores en la
base de datos
Adventure Works Cycles, los productos que suministran, su solvencia y su disponibilidad.
El ejemplo modifica el procedimiento uspVendorAllInfo. La cláusula EXECUTE AS CALLER se quita y el cuerpo
del procedimiento se modifica para devolver solo los proveedores que proporcionan el producto especificado.
Las funciones LEFT y CASE
permiten personalizar la apariencia del conjunto de resultados.
7.
ALTER PROCEDURE Purchasing.uspVendorAllInfo
@Productvarchar(25)
AS
SET NOCOUNT ON;
SELECT LEFT(v.Name, 25) AS Vendor, LEFT(p.Name, 25) AS 'Product
name',
'Rating' = CASE v.CreditRating
WHEN 1 THEN 'Superior'
WHEN 2 THEN 'Excellent'
WHEN 3 THEN 'Above average'
WHEN 4 THEN 'Average'
WHEN 5 THEN 'Below average'
ELSE 'No rating'
END
, Availability = CASE v.ActiveFlag
WHEN 1 THEN 'Yes'
ELSE 'No'
END
FROM Purchasing.Vendor AS v
INNER JOIN Purchasing.ProductVendor AS pv
ON v.BusinessEntityID = pv.BusinessEntityID
INNER JOIN Production.Product AS p
ON pv.ProductID = p.ProductID
WHERE p.Name LIKE @Product
ORDER BY v.Name ASC;
GO
8.
3. Eliminación
Para eliminarun procedimiento en el Editor de consultas
1. En el Explorador de objetos, conéctese a una
instancia del Motor de base de datos y expándala.
Expanda Bases de datos, expanda la base de
datos a la que pertenece el procedimiento o bien,
en la barra de herramientas, seleccione la base de
datos en la lista de bases de datos disponibles.
En el menú Archivo, haga clic en Nueva consulta.
Obtenga el nombre del procedimiento almacenado
para quitar en la base de datos actual. En el Explorador de objetos,
expanda Programación y, a continuación, Procedimientos almacenados.
Como alternativa, en el editor de consultas, ejecute la siguiente instrucción.
2.
3.
4.
DROP PROCEDURE <stored procedure name>;
GO
9.
Ejemplo
El siguiente ejemplomuestra un procedimiento almacenado en SQL Server que inserta un registro en la tabla ‘Inventario’:
USE [bd_inventario]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Autor: Yosbany
-- Fecha:
-- Descripción:
-- =============================================
ALTER PROCEDURE [dbo].[Insertar_Inventario]
--Parámetros de entrada
@Descripcion CHAR(15) = '',
@No_inv CHAR(15),
@Marca CHAR(15),
@Modelo CHAR(15),
@No_serie CHAR(15),
@Puesto CHAR(3),
@id INT = 0
AS
BEGIN
SET NOCOUNT ON;
-- Sentencia del procedimiento
INSERT INTO Inventario (id, Descripcion, No_inventario, Marca, Modelo, No_serie, Puesto)
VALUES(@id, @Descripcion, @No_inv, @Marca, @Modelo, @No_serie, @Puesto);
END
10.
2. RESUMEN
Un procedimientoalmacenado (stored procedure en inglés) es un
programa (oprocedimiento) almacenado físicamente en una base de
datos. Su implementación varía de un gestor de bases de datos a otro.
Utilidades
Los procedimientos almacenados son muy útiles sobre todo en arquitecturas
cliente/servidor donde hay un servidor muy potente el cual se puede aprovechar para
ejecutar procesos, consultas y actualizaciones complejas en la base de datos.
Se almacenan en la propia Base de Datos y constituyen un
objeto más dentro de esta. Tienden a mejorar el rendimiento
de los sistemas producto a que reducen en intercambio
entre cliente y servidor. Los procedimientos almacenados son
reutilizables, de manera que los usuarios mediante la
aplicación cliente no necesitan relanzar los comandos
individuales, sino que pueden llamar el procedimiento para
ejecutarlo en el servidor tantas veces como sea necesario.
11.
3. SUMMARY
A storedprocedure (stored procedure) is a program (o procedimiento) physically stored
in a database. Its implementation varies from one database manager to another.
characteristics
They are stored in the database itself and constitute a subject within it. They tend to
improve the performance of product systems that reduce exchange between client and
server. Stored procedures are reusable, so that
users using the client application need not relaunch
the individual commands, but they can call the
procedure to run on the server as many times as
necessary.
Utilities
Stored procedures are very useful especially in
client / server architectures where there is a very
powerful server which can be exploited to execute
processes, complex queries and updates in the
database.
12.
4. RECOMENDACIONES
Posibles usosque pueden
darse a estos objetos de la base
de datos
Por ejemplo, si deseamos obtener un
reporte complejo que incluya
cálculosinstrucciones condicionales y
complejos con datos obtenidos de
varias tablas, un procedimiento almacenado es nuestro mejor aliado.
También se pueden ejecutar complejos procesos que a veces tardan horas cuando son ejecutados desde el
cliente, ya que en tales casos la información debe pasar del servidor al cliente y viceversa.
Casi siempre las computadoras servidores son poderosas máquinas con mucha memoria, discos rápidos
y uno o más procesadores también muy rápidos. Por lo tanto, al ejecutar los procesos mediante procedimientos
almacenados estamos aprovechando toda esa capacidad de cómputo disponible en el hardware del
servidor.
Cuando múltiples aplicaciones cliente se escriben en distintos lenguajes o
funcionan en distintas plataformas, pero necesitan realizar la misma operación en la base de datos. Cuando la
seguridad es muy importante. Los bancos, por
ejemplo, usan procedimientos almacenados para todas las operaciones comunes.
Esto proporciona un entorno seguro y consistente, y los procedimientos pueden asegurar que cada
operación se loguea apropiadamente. En tal entorno, las aplicaciones y los usuarios no obtendrían ningún
acceso directo a las tablas de la base de datos, sólo pueden ejectuar algunos procedimientos almacenados.
Algunos casos en que pueden resultar particularmente
útiles
13.
5. CONCLUSIONES
El procedimientoalmacenado nos sirve para que
la consulta que se guarde pueda ser llamada con el nombre que se le
fue asignado.
También observe que el procedimiento en el gestor Oracle es muy
diferente al que se utiliza en el SQL, algunas de las sentencias
que cambian son el BEGIN Y EL END.
6. APRECIACIÓN DEL EQUIPO
Para este trabajo de investigación fue sencillo ya que conté con material
específicamente sobre el tema e investigue un poco más en Internet, espero te ayude.
7. BIBLIOGRAFIA O LINKOGRAFIA
http://www.ecured.cu/Procedimientos_almacenados