Transcript

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 operación en la base de datos. Un procedimiento almacenado contiene código SQL que puede, entre otras cosas, insertar, actualizar o eliminar registros. Los procedimientos almacenados también pueden alterar la estructura de la base de datos. Por ejemplo, puede utilizar un procedimiento almacenado para añadir una columna de tabla o incluir borrar una tabla.

Un Store Procedure también puede llamar a otro Store Procedure, así como aceptar entradas y devolver múltiples valores al procedimiento llamado en forma de parámetros de salida.

Que es un Trigger

Un trigger o un disparador en una Base de datos es un evento que se ejecuta automáticamente cuando se cumple una condición establecida al realizar una operación de inserción (INSERT), actualización (UPDATE) o borrado (DELETE).

Functions, Stored rocedures, Triggers

Ahora en SQL Server 2005 se puede escribir codigo para usar estos objetos usando lenguaje Transact-SQL 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).

El Nombre debe ser unico

Puede o no puede tener parametros Tipo de parametro

Sintaxis de una Scalar Function

Tipo de dato de retorno

Opciones

Cuerpo

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

Funciones 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().

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 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. 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.

Sintaxis de un DML Trigger

DDL Triggers

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

Sintaxis de un DDL Trigger


Recommended