Sql server 2008 procedimientos
1
Ventajas de los procedimientos almacenados • Compartir la lógica de la aplicación • Permite una programación modular • Protege detalles del esquema de base de datos • Puede utilizarse como mecanismo de seguridad • Permite una ejecución más rápida • Puede reducir eltráfico de red
5
Creando, ejecutando y modificando procedimientos almacenados • Creando procedimientos almacenados • Normas para la creación de procedimientos almacenados • Ejecutando procedimientos almacenados • Modificando y eliminando procedimientos almacenados
6
Creación de procedimientos almacenados • Usar la sentencia CREATE PROCEDURE
USE Compañia GO CREATE PROCEDURE ListaEmpleadosAS SELECT * FROM Empleado
• Puede tener 32 niveles de anidamiento • Usar sp_help para mostrar información
7
Normas para la creación de procedimientos almacenados • El usuario dbo debe ser el propietario de todos los procedimientos almacenados • Un procedimiento almacenado para una tarea • Crear, probar y depurarlo en el servidor • Evitar usar el prefijo sp_ en el nombre de losprocedimientos almacenados • Usar la misma configuración de conexión para todos los procedimientos almacenados • Minimizar el uso de los procedimientos almacenados temporales
8
Ejecución de procedimientos almacenados • Ejecutando un procedimiento almacenado
EXEC ListaEmpleados
Ejecutando un procedimiento almacenados dentro de una instrucción INSERT
INSERT INTO Empleados1 EXEC ListaEmpleados
9Modificando y eliminando procedimientos almacenados
• Modificando procedimientos almacenados
– Incluya cualquier opción en ALTER PROCEDURE – No afecta procedimientos almacenados anidados
ALTER PROCEDURE ListaEmpleados AS SELECT * FROM empleado ORDER BY nombre_Emp • Eliminando procedimientos almacenados DROP PROCEDURE ListaEmpleados
10
Usando parámetros en los procedimientosalmacenados • Usando parámetros de entrada • Ejecutando procedimientos almacenados con parámetros de entrada • Retornando valores son parámetros de salida • Recompilando explícitamente procedimientos almacenados
11
Usando parámetros de entrada
• Capturar valores de parámetros inválidos • Usar valores predeterminados apropiados
CREATE PROCEDURE ListaEmpleados @departamento char(15) =‘Investigación’, @sexo bit = 1, @salario smallmoney = 500 AS SELECT Nombre_Emp, ApellidoPat_Emp, Sexo_Emp, Salario_Emp, Nombre_Emp FROM Empleado As E JOIN Departamento As D ON E.numero_Dep = D.numero_Dep WHERE salario_Emp >= @salario AND sexo_Emp = @sexo AND Nombre_Dep = @departamento
12
Ejecutando procedimientos almacenados con parámetros de entrada • Pasando valores por referencia
EXEC ListaEmpleados@salario = 1000, @departamento = ‘Administración’, @sexo = 0
• Pasando valores por posición
EXEC ListaEmpleados ‘Administración’, 0, 1000
13
Retornando valores con parámetros de salida • Creando el procedimientos almacenado
CREATE PROCEDURE Depto @NombreDep char(15), @NumEmp tinyint OUTPUT AS SELECT @NumEmp = COUNT(*) FROM Empleado As E JOIN Departamento As D ON E.numero_Dep = D.numero_DepWHERE NombreD = @NombreDep
• Ejecutando
DECLARE @rpta tinyint EXEC Depto ‘Administración’, @rpta OUTPUT SELECT ‘El resultado es:’, @rpta
14
Manejando mensajes de error • La sentencia RETURN sale de una consulta o procedimiento incondicionalmente • sp_addmessage crea un mensaje de error de usuario • @@error contiene el número de error para la última sentencia ejecutada • SentenciaRAISERROR
– Retorna mensajes de error del sistema o definidos por el usuario – Configura banderas del sistema para registrar errores
15
Practicas recomendadas
• Incluir técnicas de manejo de error • Diseñar cada procedimiento almacenado para completar una sola tarea • Ejecutar chequeo de errores antes de iniciar transacciones • Usar la misma configuración de conexión para todos los...
Regístrate para leer el documento completo.