1. CONTENIDO
- Definición:
Conjunto
de 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.
- Sintaxis
Para crear un procedimiento almacenado debemos emplear la
sentencia CREATE PROCEDURE.
CREATE PROCEDURE <nombre_procedure> [@param1 <tipo>, ...]
AS
- Administración de Procedimientos
Almacenados
1.
Creación
Para crear un procedimiento en el Editor de consultas
- En
el Explorador de objetos, conéctese a una instancia del Motor
de base de datos.
- En
el menú Archivo, haga clic en Nueva consulta.
- 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.
CREATE PROCEDURE
HumanResources.uspGetEmployeesTest2
@LastName nvarchar(50),
@FirstName nvarchar(50)
AS
SET
NOCOUNT ON;
SELECT FirstName, LastName, Department
FROM
HumanResources.vEmployeeDepartmentHistory
WHERE FirstName = @FirstName AND LastName = @LastName
AND
EndDate IS NULL;
GO
2. Modificación
Para modificar un 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.
ALTER PROCEDURE Purchasing.uspVendorAllInfo
@Product varchar(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
3. Eliminación
Para eliminar un 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
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.
DROP PROCEDURE <stored procedure name>;
GO
- Ejemplo
El siguiente ejemplo
muestra 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
2. RESUMEN
Un procedimiento almacenado (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.
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.
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.
3. SUMMARY
A stored procedure (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.
4. RECOMENDACIONES
Ø Posibles usos
que pueden darse a estos objetos de la base de datos
·
Por ejemplo, si deseamos obtener un reporte
complejo que incluya instrucciones condicionales y cálculos 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.
Ø Algunos casos
en que pueden resultar particularmente útiles
·
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.
5. CONCLUSIONES
·
El procedimiento almacenado 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
Ver Diapositivas Aqui
No hay comentarios:
Publicar un comentario