Categoría:DEV PROCEDIMIENTOS

De Pragma Wiki
Ir a la navegación Ir a la búsqueda

Introducción

Diagrama de procedimientos.

Los procedimientos (ver Procedimientos) son similares a las funciones definidas en el catálogo, pero no retornan un resultado.

A diferencia de las funciones definidas en el catálogo, los procedimientos siempre se crean en la base de datos.

Tablas

Para definir un procedimiento necesitamos:

Acceso a los argumentos desde el SQL del procedimiento

Para acceder a los valores ingresados en los argumentos desde el SQL del procedimiento tenemos que hacer lo descripto en este título.

Asumiendo que tenemos un argumento llamado Articulo de tipo VARCHAR el SQL (definido en DEV PROCEDIMIENTOS/DETALLE) accede a su valor agregando un @ como Prefijo al nombre del argumento.

Por ejemplo:

IF EXISTS (SELECT * FROM ART WHERE FCODIGO = @Articulo)
   BEGIN
   .
   .
   .
   END

Como armar el procedimiento

Como ejemplo, usamos una función denominada ACTIVAR_ARTICULO que tiene un argumento FARTICULO: VARCHAR(24) representando el código de articulo que queremos activar.

IF EXISTS (SELECT * FROM sys.objects WHERE name = 'ACTIVAR_ARTICULO') DROP PROCEDURE ACTIVAR_ARTICULO
GO
CREATE PROCEDURE ACTIVAR_ARTICULO
(
@FARTICULO VARCHAR(24)
)
AS
BEGIN
IF EXISTS (SELECT * FROM ART WHERE ART.FCODIGO = @FARTICULO)
   BEGIN
   UPDATE ART SET FACTIVO = 1 WHERE ART.FCODIGO = @FARTICULO
   END
END
GO

Armamos el procedimiento:

IF EXISTS (SELECT * FROM ART WHERE ART.FCODIGO = @FARTICULO)
   BEGIN
   UPDATE ART SET FACTIVO = 1 WHERE ART.FCODIGO = @FARTICULO
   END

Todos los comandos necesarios para crear el procedimiento los agrega el sistema.

Notar que:

  • No tenemos que incluir el CREATE.
  • Registramos el código entre el primer BEGIN y el último END.
  • No tenemos que incluir el GO final.

Páginas en la categoría «DEV PROCEDIMIENTOS»

Las siguientes 3 páginas pertenecen a esta categoría, de un total de 3.