Procedimientos Almacenados

Solo disponible en BuenasTareas
  • Páginas : 3 (707 palabras )
  • Descarga(s) : 0
  • Publicado : 17 de abril de 2012
Leer documento completo
Vista previa del texto
Procedimientos almacenados

Procedimientos almacenados
Un procedimiento es un programa dentro de la base de datos que ejecuta una acción o conjunto de acciones específicas. Un procedimiento tieneun nombre, un conjunto de parámetros (opcional) y un bloque de código. En Transact SQL los procedimientos almacenados pueden devolver valores (numérico entero) o conjuntos de resultados. Para crear unprocedimiento almacenado debemos emplear la sentencia CREATE PROCEDURE.
CREATE PROCEDURE [@param1 , ...] AS -- Sentencias del procedure

Para modificar un procedimiento almacenado debemos emplearla sentencia ALTER PROCEDURE.
ALTER PROCEDURE [@param1 , ...] AS -- Sentencias del procedure

El siguiente ejemplo muestra un procedimiento almacenado, denominado spu_addCliente que inserta unregistro en la tabla "CLIENTES".
CREATE PROCEDURE spu_addCliente @nombre varchar(100), @apellido1 varchar(100), @apellido2 varchar(100), @nifCif varchar(20), @fxNaciento datetime AS INSERT INTOCLIENTES (nombre, apellido1, apellido2, nifcif, fxnacimiento) VALUES (@nombre, @apellido1, @apellido2, @nifCif, @fxNaciento)

Para la ejecutar un procedimiento almacenado debemos utilizar la sentenciaEXEC. Cuando la ejecución del procedimiento almacenado es la primera instrucción del lote, podemos omitir el uso de EXEC. El siguiente ejemplo muestra la ejecución del procedimiento almacenado anterior.DECLARE @fecha_nacimiento datetime

IES Nervión

Página 1

Procedimientos almacenados
set @fecha_nacimiento = convert(datetime, '13/05/1975', 103) EXEC spu_addCliente 'Pedro', 'Herrarte','00000002323', @fecha_nacimiento 'Sanchez',

Siempre es deseable que las instrucciones del procedure esten dentro de un bloque TRY CATCH y controlados por una transacción.
ALTER PROCEDUREspu_addCliente @nombre varchar(100), @apellido1 varchar(100), @apellido2 varchar(100), @nifCif varchar(20), @fxNaciento datetime AS BEGIN TRY BEGIN TRAN INSERT INTO CLIENTES (nombre, apellido1, apellido2,...
tracking img