Sql server 2008 procedimientos

Solo disponible en BuenasTareas
  • Páginas : 7 (1611 palabras )
  • Descarga(s) : 0
  • Publicado : 11 de enero de 2012
Leer documento completo
Vista previa del texto
Implementación de Implementación de Base de Datos con Base de Datos con Microsoft SQL Server Microsoft SQL Server 200

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

9 Modificando 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...
tracking img