BASE DE
DATOS IIIng. Marco Aurelio Porro Chulli
Ingeniería de Sistemas y
Telemática
INTEGRANTES:
 Sandrita Rafael Estela..
 Rosaliny Rivera Salazar.
PROCEDIMIENTOS ALMACENADOS
Es un 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.
CREATE [ OR ALTER ] { PROC | PROCEDURE }
[schema_name.] procedure_name [ ; number ]
[ { @parameter [ type_schema_name. ] data_type }
[ = default ] [ OUT | OUTPUT ] [READONLY]
] [ ,...n ]
[ WITH EXECUTE AS Clause ]
AS { EXTERNAL NAME
assembly_name.class_name.method_name }
[;]
Creación:
CREATE PROCEDURE
total_factura (@id_factura
INT)
AS
BEGIN
SELECT
SUM(UNIDADES*PRECIO)
FROM RENGLON
WHERE
RENGLON.IDFACTURA =
@id_factura;
END;
Modificacion:
ALTER PROCEDURE
modificar_cliente
(@id_cliente INT,
@nombre_cliente
VARCHAR (20),
@apellido_cliente VARCHAR
(20))
WITH ENCRYPTION
AS
UPDATE CLIENTE
SET
NOMBRE=@nombre_cliente,APELLI
DO=@apellido_cliente
WHERE IDCLIENTE=@id_cliente;
Eliminación:
DROP { PROC |
PROCEDURE } { [
schema_name. ] procedure }
[ ,...n ] DROP PROCEDURE
nombre_procedimiento
Ejemplo.
drop procedure
pa_libros_autor;
Instrucción SQL
USEAdventureWorks
Select name, Color, ListPrice, SellStartDate
FROM Production.Product
WHERE SellStartDate > '1/1/2003'
ORDER BY SellStartDate, Name
Procedimiento con instrucción anterior
CREATE PROCEDURE PROCE1#CARNET
AS
Select name, Color, ListPrice, SellStartDate
FROM Production.Product
WHERE SellStartDate > '1/1/2003'
ORDER BY SellStartDate, Name
GO
Para probar el nuevo procedimiento, abra una nueva consulta de
SQL Server y escriba y ejecute el código siguiente.
USEAdventureWorks
EXEC PROCE1#CARNET
USE library CREATE PROCEDURE ingreso
@apellido varchar(15), @nombre varchar(15)
AS insert into member(lastname,firstname)
values(@apellido,@nombre)
PRINT 'EL REGISTRO SE HA INGRESADOCORRECTAMENTE’
Para llamar este procedimiento utilice la siguiente
sentencia:
USE library EXEC ingreso 'Moran','Gustavo'
Para comprobar que se ingresó el registro utilice la siguiente
instrucción y busque el registro que acaba de ingresar con el
procedimiento.
Select * from member
Si alguien ingresa un valor nulo
EXEC ingreso ' ','Jose' El procedimiento lo aceptara sin enviar
ningún error, entonces podemos modificar el procedimiento
de la siguiente manera:
Los procedimientos almacenados son un
conjunto de instrucciones SQL más una serie de
estructuras de control que nos permiten dotar de
cierta lógica al procedimiento. Estos
procedimientos están guardados en el servidor y
pueden ser accedidos a través de llamadas.
Para crear un procedimiento, SQL nos ofrece la
directiva CREATE PROCEDURE. Para llamar a
un procedimiento lo hacemos mediante la
instrucción CALL. Desde un procedimiento
podemos invocar a su vez a otros
procedimientos o funciones.
 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 ejecutar algunos procedimientos almacenados.
 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.
 Podemos reutilizar el procedimiento y este puede ser llamado desde diferentes
aplicaciones y lenguajes. Sólo lo programaremos una vez.
 Pueden mejorar el rendimiento ya que se necesita enviar menos información entre
el servidor y el cliente. El intercambio que hay es que aumenta la carga del
servidor de la base de datos ya que la mayoría del trabajo se realiza en la parte
del servidor y no en el cliente.

Procedimientos almacenadoss

  • 1.
    BASE DE DATOS IIIng.Marco Aurelio Porro Chulli Ingeniería de Sistemas y Telemática INTEGRANTES:  Sandrita Rafael Estela..  Rosaliny Rivera Salazar. PROCEDIMIENTOS ALMACENADOS
  • 2.
    Es un 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.
  • 3.
    CREATE [ ORALTER ] { PROC | PROCEDURE } [schema_name.] procedure_name [ ; number ] [ { @parameter [ type_schema_name. ] data_type } [ = default ] [ OUT | OUTPUT ] [READONLY] ] [ ,...n ] [ WITH EXECUTE AS Clause ] AS { EXTERNAL NAME assembly_name.class_name.method_name } [;]
  • 4.
    Creación: CREATE PROCEDURE total_factura (@id_factura INT) AS BEGIN SELECT SUM(UNIDADES*PRECIO) FROMRENGLON WHERE RENGLON.IDFACTURA = @id_factura; END; Modificacion: ALTER PROCEDURE modificar_cliente (@id_cliente INT, @nombre_cliente VARCHAR (20), @apellido_cliente VARCHAR (20)) WITH ENCRYPTION AS UPDATE CLIENTE SET NOMBRE=@nombre_cliente,APELLI DO=@apellido_cliente WHERE IDCLIENTE=@id_cliente; Eliminación: DROP { PROC | PROCEDURE } { [ schema_name. ] procedure } [ ,...n ] DROP PROCEDURE nombre_procedimiento Ejemplo. drop procedure pa_libros_autor;
  • 5.
    Instrucción SQL USEAdventureWorks Select name,Color, ListPrice, SellStartDate FROM Production.Product WHERE SellStartDate > '1/1/2003' ORDER BY SellStartDate, Name Procedimiento con instrucción anterior CREATE PROCEDURE PROCE1#CARNET AS Select name, Color, ListPrice, SellStartDate FROM Production.Product WHERE SellStartDate > '1/1/2003' ORDER BY SellStartDate, Name GO Para probar el nuevo procedimiento, abra una nueva consulta de SQL Server y escriba y ejecute el código siguiente. USEAdventureWorks EXEC PROCE1#CARNET
  • 6.
    USE library CREATEPROCEDURE ingreso @apellido varchar(15), @nombre varchar(15) AS insert into member(lastname,firstname) values(@apellido,@nombre) PRINT 'EL REGISTRO SE HA INGRESADOCORRECTAMENTE’ Para llamar este procedimiento utilice la siguiente sentencia: USE library EXEC ingreso 'Moran','Gustavo' Para comprobar que se ingresó el registro utilice la siguiente instrucción y busque el registro que acaba de ingresar con el procedimiento. Select * from member Si alguien ingresa un valor nulo EXEC ingreso ' ','Jose' El procedimiento lo aceptara sin enviar ningún error, entonces podemos modificar el procedimiento de la siguiente manera:
  • 7.
    Los procedimientos almacenadosson un conjunto de instrucciones SQL más una serie de estructuras de control que nos permiten dotar de cierta lógica al procedimiento. Estos procedimientos están guardados en el servidor y pueden ser accedidos a través de llamadas. Para crear un procedimiento, SQL nos ofrece la directiva CREATE PROCEDURE. Para llamar a un procedimiento lo hacemos mediante la instrucción CALL. Desde un procedimiento podemos invocar a su vez a otros procedimientos o funciones.
  • 8.
     Cuando laseguridad 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 ejecutar algunos procedimientos almacenados.  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.  Podemos reutilizar el procedimiento y este puede ser llamado desde diferentes aplicaciones y lenguajes. Sólo lo programaremos una vez.  Pueden mejorar el rendimiento ya que se necesita enviar menos información entre el servidor y el cliente. El intercambio que hay es que aumenta la carga del servidor de la base de datos ya que la mayoría del trabajo se realiza en la parte del servidor y no en el cliente.