Anda di halaman 1dari 21

Functions, Stored Procedures, Triggers

Funciones, Procedimientos Almacenados, Disparadores

Contenido

Que es una Function (Funcion). Que es un Stored Procedure (Procedimiento Almacenado). Que es un Trigger (Disparador ). Implementar Functions. Implementar Stored Procedures. Implementar Triggers.

Que es una Funcion.

Es una porcion encapsulada de codigo que puede ser reutilizada por diferentes programas.

Que es un Stored Procedure.

Un Store Procedure es un elemento de base de datos reutilizable almacenado que realiza alguna operacin en la base de datos. Un procedimiento almacenado contiene cdigo SQL que puede, entre otras cosas, insertar, actualizar o eliminar registros. Los procedimientos almacenados tambin pueden alterar la estructura de la base de datos. Por ejemplo, puede utilizar un procedimiento almacenado para aadir una columna de tabla o incluir borrar una tabla. Un Store Procedure tambin puede llamar a otro Store Procedure, as como aceptar entradas y devolver mltiples valores al procedimiento llamado en forma de parmetros de salida.

Que es un Trigger

Un trigger o un disparador en una Base de datos es un evento que se ejecuta automticamente cuando se cumple una condicin establecida al realizar una operacin de insercin (INSERT), actualizacin (UPDATE) o borrado (DELETE).

Functions, Stored rocedures, Triggers

Ahora en SQL Server 2005 se puede escribir codigo para usar estos objetos usando lenguaje TransactSQL o un lenguaje Microsoft.Net Framework como C# o Visual Basic

Implementando una Funcion

SQL Server contiene funciones ya construidas que pueden ser utilizadas dentro de las aplicaciones para proveer funcionalidad comun. Un ejemplo de una funcion es GETDATE(), la cual retorna la fecha y hora actual del sistema.

Tipos de funciones

Scalar Functions: Retorna un resultado con un valor escalar. Table-Value Functions: Retorna el resultado en forma de tabla.

Scalar Functions

Pueden aceptar 0 o mas parametros de entrada. Retorna solo un valor escalar. Generalmente se usan en como campos de columnas y en las condiciones del Where. No se puede utilizar una funcion para cambiar el estado de un objeto de la base de datos (No puede insertar, modificar, eliminar datos de una tabla. No puede borrar tablas u otros objetos de la base de datos).

Sintaxis de una Scalar Function

El Nombre debe ser unico

Puede o no puede tener parametros

Tipo de parametro

Tipo de dato de retorno

Cuerpo Opciones

Tabled-Value Functions

Cumplen las mismas reglas de las Scalar Functions. Retorna una tabla como salida. Generalmente se usan en la clausula FROM.

Sintaxis de una Table-Value Functions

Funciones Deterministicas y No Deterministicas

retorna siempre para el o los mismos parametros de entrada, el mismo valor de resultado (Ejemplo el coseno de un angulo). Funciones No Deterministicas: retorna diferentes valores de resultado cada vez que se les llaman (Ejemplo la funcion GetDate().
Funciones Deterministicas:

Implementando un Stored Procedure


Es la estructura de programacion mas usada dentro de una base de datos. Un procedimiento es un nombre asociado a proceso batch de instrucciones SQL que son mantenidasa y ejecutadas en el servidor. Los stored procedures pueden retornar un valor escalar, o un conjunto de valores. Es la interfaz necesaria que las aplicaciones deben usar para acceder a los datos dentro de una base de datos.

Sintaxis de un Stored Procedure

Asignacion de permisos a un Stored Procedure

Como en todos los objetos y operaciones en la base de datos, se deben asignar permisos para que un usuario pueda ejecutar un stored procedure. Cuando se asigna permisos en un Stored Procedure, automaticamente se delegan permisos sobre los objetos y comandos utilizados dentro del Stored Procedure.

Implementando Triggers

Es una implementacion de Transact-SQL o un proceso batch CLR que responde a un evento dentro de la base de datos. Existen 2 tipos:

Data Manipulation Languaje (DML): se ejecutan con las intrucciones INSERT, UPDATE or DELETE. Data Definition Languaje (DFL): se ejecutan cuando se crean, alteran o borran objetos de la base de datos.

DML Triggers

Un DML trigger no puede ser ejecutado por un usuario. Puede estar atachado a una tabla o una vista en un evento particular definido. Modos de ejecucion:

AFTER: Se ejecuta cuando se completa

No se puede crear, modificar, borrar, realizar o restaurar una base de datos mediante un trigger. No puede crear alterar tablas o indices mediante un trigger.

exitosamente todas las validaciones y operaciones de una accion. INSTEAD OF: Se ejecuta sobre la operacion definida, sin importar si se completo toda la accion.

Sintaxis de un DML Trigger

DDL Triggers

El proposito principal es auditar acciones realizadas en una base de datos.

Sintaxis de un DDL Trigger