Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porMaría Victoria Ferreyra Márquez Modificado hace 8 años
1
DML Transact SQL Sesión IX Introducción a los procedimientos almacenados
2
Introducción a los Procedimientos almacenados Duración 2 Horas
3
Objetivo Particular Al finalizar el modulo el participante será capaz de trabajar con procedimientos almacenados como objetos propios de las bases de datos.
4
Introducción Las tareas conjuntadas son una herramienta con gran utilidad en cualquier aplicación el uso de los procedimientos almacenados permite agrupar instrucciones y operaciones como un programa con un solo plan de ejecución
5
Introducción a los procedimientos almacenados. Objetivo específico: Al finalizar el participante indicará las características de básicas de un procedimiento almacenado sobre SQL Server 2000.
6
Introducción a los procedimientos almacenados. Un procedimiento almacenado es un pequeño programa almacenado en la base de datos que puede ser ejecutado en cualquier momento. Los procedimientos almacenados, al igual que los disparadores, utilizan un lenguaje propietario ya que el estándar SQL ANSI 92 no especifica nada acerca de ellos.
7
Introducción a los procedimientos almacenados. Los procedimientos almacenados ofrecen ventajas importantes: Rendimiento: al ser ejecutados por el motor de base de datos ofrecen un rendimiento inmejorable ya que no es necesario transportar datos a ninguna parte. Potencia: Permiten ejecutar operaciones complejas en pocos pasos Centralización: están en un lugar centralizado y pueden ser ejecutados por cualquier aplicación que tenga acceso a la misma.
8
Introducción a los procedimientos almacenados. Pero también ofrecen una desventaja importante: Esclavitud: los procedimientos almacenados generan una esclavitud hacia el motor de base de datos. Una base de datos con muchos procedimientos almacenados es prácticamente imposible de migrar a otro motor.
9
Introducción a los procedimientos almacenados. set term !! create procedure proxcliente (incremento integer) returns (proximocliente integer) as begin proximocliente = gen_id(nextcust, incremento); end; !! set term ; (SP. Realizado en Interbase)
10
Introducción a los procedimientos almacenados. create procedure proxcliente @incremento int, @proximocliente int output as Select @proximocliente = gen_id(nextcust, incremento) Return @proximocliente GO
11
Introducción a los procedimientos almacenados. Procedimientos de Sistema y extendidos. Microsoft a desarrollado una serie de procedimientos almacenados para desarrollar una serie de tareas administrativas de la base de datos. Estos procedimientos se encuentran dentro de la base de datos Master, pero pueden ser usados en cualquier base de datos.
12
Introducción a los procedimientos almacenados. Procedimientos de Sistema y extendidos. Un ejemplo de ello es el procedimiento sp_helptext que permite visualizar la definición de una vista. Los procedimientos extendidos son usados implementados como librerías dinámicas (DLLs) por lo general su nombre empieza con el prefijo “ex_” por ejemplo xp_cmdshell
13
Introducción a los procedimientos almacenados. Procedimientos definidos por el usuario Un usuario puede crear sus propios procedimientos almacenados, mismos que pueden ser clasificados como: Locales, Temporales o bien Remotos. Los procedimientos locales, son aquellos donde el usuario crea su procedimiento para uso dentro de la base de datos en la que es creado, por lo cual se dice que estará siempre disponible.
14
Introducción a los procedimientos almacenados. Procedimientos definidos por el usuario Los procedimientos Temporales pueden ser de dos tipos “Locales” y “Globales”, se diferencian por el acceso de las sesiones, los locales comienzan con el simbolo “#” mientras los globales comienzan con doble simbolo “#”, como no son procedimientos físicos no pueden ser visualizados en el navegador de procedimientos
15
Introducción a los procedimientos almacenados. Procedimientos definidos por el usuario #proc_def Procedimiento temporal local ##proc_def Procedimiento temporal global Los procedimientos remotos al igual que los locales existen para una BD. En particular pero pueden ser mandados a ejecución con el nombrado completo de objetos.DBO.
16
Introducción a los procedimientos almacenados. Practica #1 Inicialice los libros en línea y acceda a Referencia de Transact-SQL dentro de ella expanda Procedimientos almacenados del sistema revise el procedimiento sp_help
17
Introducción a los procedimientos almacenados. Sp_help Presenta información acerca de un objeto de la base de datos (cualquier objeto de la tabla sysobjects), de un tipo de datos definido por el usuario o de un tipo de datos proporcionado por Microsoft® SQL Server™. … Sintaxis sp_help [ [ @objname = ] name ]
18
Introducción a los procedimientos almacenados. Ejecución - Primera Vez Cuando se ejecuta por primera vez un procedimiento almacenado el SQL Server comienza haciendo un “parsing” al procedimiento almacenado, después compila el procedimiento y lo ejecuta por primera vez
19
Introducción a los procedimientos almacenados. Ejecución – Segunda Vez Después de ejecutar por primera instancia un procedimiento almacenado, SQL Server almacena el plan de ejecución y lo utiliza en el momento de ejecución, por lo cual el trabajo es más rápido.
20
Creación de procedimientos almacenados. Objetivo específico: Al finalizar el participante trabajará con procedimientos almacenados sencillos sobre SQL Server 2000 partiendo de su creación hasta su eliminación.
21
Creación de procedimientos almacenados. Sintaxis CREATE PROCEDURE [WITH opción] AS Instrucciones SQL GO
22
Creación de procedimientos almacenados. Por ejemplo crear un procedimiento que permita mostrar el territorio (TerritoryDescription) y la Región a la que pertenece (RegionDescription) de las tablas Region y Territories de la Base de datos Northwind Este procedimiento contendrá dentro de él únicamente una instrucción SELECT
23
Creación de procedimientos almacenados. Create procedure sp_terr as select t.TerritoryDescription, r.RegionDescription from Territories t join Region r on t.RegionID = r.RegionID Compile el procedimiento (F5) Ejecute el procedimiento
24
Creación de procedimientos almacenados. Plan de Ejecución
25
Creación de procedimientos almacenados.
26
Limitaciones: Soportan hasta 128MB de tamaño Se pueden anidar hasta 32 niveles de PA. (anidar un procedimiento es cuando uno llama a otro) No se pueden realizar las siguientes operaciones: CREATE DEFAULT, CREATE PROCEDURE, CREATE RULE, CREATE TRIGGER, CREATE VIEW
27
Creación de procedimientos almacenados. Revisión de la definición Para revisar desde el analizador de consultas el contenido del procedimiento almacenado basta con usar el procedimiento de sistema SP_HELPTEXT Para la revisión de aspectos generales se puede usar el procedimiento de sistema SP_HELP
28
Creación de procedimientos almacenados. Evitando ver la definición Para evitar que cualquier usuario pueda accesar a la definición del procedimiento almacenado, se agrega la cláusula WITH ENCRYPTION después de especificar el nombre. CREATE PROCEDURE WITH ENCRYPTION AS Instrucciones SQL GO
29
Creación de procedimientos almacenados. Practica #2 Cree un procedimiento almacenado que muestre de la tabla Products los campos ProductID, ProductName y UnitPrice, la definición del procedimiento debe permanecer cifrada. Ejecute el procedimiento Analice el plan de ejecución Revise que la definición no se visualice
30
Creación de procedimientos almacenados. Modificación de Procedimientos Se puede cambiar la definición de los procedimientos almacenados usando la instrucción ALTER PROCEDURE, cuando se modifica un procedimiento, realmente lo que se lleva acabo es un borrado y una re- creación.
31
Creación de procedimientos almacenados. Borrando un procedimiento Cuando se desea eliminar un procedimiento almacenado, debe de ejecutar la instrucción DROP PROCEDURE Microsoft recomienda revisar que objetos son dependientes del procedimiento antes de eliminarlo SP_DEPENDS
32
Creación de procedimientos almacenados. Practica #3 Modifique el procedimiento del ejercicio anterior para que además muestre la cantidad de registros existentes en la tabla de Products, esto a través de una consulta.
33
Uso de parámetros. Objetivo específico: El participante utilizará diversos parámetros a los procedimientos almacenados tales como de entrada y de salida.
34
Uso de parámetros. Parámetros de entrada CREATE PROCEDURE [@nombre_parametro ] [=valor_default] [WITH opción] AS Instrucciones SQL GO
35
Uso de parámetros. Crear un procedimiento almacenado que reciba de entrada una concordancia de caracteres y muestre la región (RegionDescription) de aquellas regiones que contengan esa subcadena. create procedure sp_tab @name varchar(50) = null as select @name='%'+@name+'%' select * from region where RegionDescription like @name
36
Uso de parámetros. La definición por default permite que no se marque error si el procedimiento no recibe el parámetro indicado. Para verificar si existe valor en el parámetro basta checar con un IF if @name is null print 'No existe subcadena de comparación' else Begin select @name='%'+@name+'%' select * from region where RegionDescription like @name End
37
Uso de parámetros. Parámetros de Salida CREATE PROCEDURE [@nombre_parametro ] [=valor_default] output [WITH opción] AS Instrucciones SQL GO Ejecución anidada de procedimientos EXEC
38
Uso de parámetros. Otras capacidades Uso de variables (declare @ tipo_dato) Uso de ciclos (While... begin... end) Mensajes de error (RAISERROR) Variable de sistema (@@ERROR)
39
Conclusión Uno de los objetos más complejos de la base de datos son los procedimientos almacenados, su desarrollo y comprensión requieren de tiempo y facilidad de programación en la mayoría de los casos, esta unidad permitió al usuario comprender su manejo y utilización básica de los mismos.
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.