La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

DML Transact SQL Sesión IX Introducción a los procedimientos almacenados.

Presentaciones similares


Presentación del tema: "DML Transact SQL Sesión IX Introducción a los procedimientos almacenados."— Transcripción de la presentación:

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.


Descargar ppt "DML Transact SQL Sesión IX Introducción a los procedimientos almacenados."

Presentaciones similares


Anuncios Google