Sie sind auf Seite 1von 5

INTRODUCCION AL SQL PROCEDURAL

El SQL PL es, en realidad, un subconjunto del SQL que proporciona construcciones de


procedimiento que se pueden utilizar para implementar la lgica alrededor de las sentencias de
SQL tradicionales. El SQL PL es un lenguaje de programacin de alto nivel con una sintaxis sencilla
y sentencias habituales de control de programacin, que incluyen las sentencias IF, ELSE, WHILE,
FOR, ITERATE y GOTO, as como otras sentencias.
Procedimientos de SQL PL y de SQL.
Los procedimientos de SQL PL pueden contener parmetros, variables, sentencias de asignacin,
sentencias de control de SQL PL y sentencias de SQL compuestas. Los procedimientos de SQL PL
tambin dan soporte a un potente mecanismo de manejo de errores y condiciones, a las llamadas
anidadas y repetitivas y a la devolucin de varios conjuntos de resultados al llamante o a la
aplicacin cliente. Para conocer el conjunto completo de elementos del lenguaje soportado en los
procedimientos de SQL PL, vea la sentencia CREATE PROCEDURE (SQL) en la Consulta de SQL.
Procedimientos almacenados
Un procedimiento almacenado es un objeto perteneciente a una base de datos, que contiene un
conjunto de instrucciones SQL, tanto de consulta, como de manipulacin de datos, como de
control de la secuencia del programa, asociados a un nombre, y que son ejecutados en conjunto.
Puede contener parmetros tanto de entrada como de salida (parmetros pasados por
referencia), as como devolver un valor de retorno. Son precompilados al ejecutarse por primera
vez, y no vuelven a sercompilados con las subsiguientes ejecuciones, lo que proporciona una cierta
mejora en el rendimiento. No obstante si se desea se puede forzar su re compilacin. Una de las
principales ventajas de este tipo de objetos, es que al residir en la propia base de datos son
compartibles por todos los usuarios, pudiendo de esta manera beneficiarse de los distintos cachs
del servidor. Al mismo tiempo al ser cdigo externo a la aplicacin puede ser alterado sin que
exista siempre la necesidad de modificar el cdigo de la misma.
Al ser objetos de la base de datos se hallan sujetos a los esquemas de seguridad determinados por
el administrador de la misma: Existen diversas clases de procedimientos almacenados, entre los
que se encuentra los procedimientos almacenados del sistema, que sirven de herramientas para la
realizacin de distintas tareas de administracin.
Un procedimiento almacenado se crea con la sentencia CREATE PROCEDURE, que debe ser la nica
dentro de un mismo batch . La creacin de un procedimiento almacenado puede ser realizada bien
desde el ISQL_W , bien desde la opcin Manage.Stored Procedures del Enterprise Manager , o
bien desde la propia ventana donde se muestran los objetos de la base de datos, en el grupo
correspondiente a los procedimientos almacenados, dentro de esta ltima herramienta.

La sintaxis de dicha instruccin es bsicamente la siguiente:


CREATE PROCEDURE Nombre_del_procedimiento
[Lista_de_parmetros]
AS
(Sentencias SQL)
[RETURN [Valor]]
Donde:
Nombre_del_procedimiento :
Identificador que determina elnombre asignado al procedimiento y que debe cumplir con la regla
de definicin de identificadores establecida en MSSQL Server.
Lista_de_parmetros :
Parmetros definidos en el procedimiento con la siguiente sintaxis:
@nombre_var Tipo_var [OUTPUT]
El smbolo @ es necesario no slo en la declaracin sino que forma parte del propio nombre. La
clasula OUPUT determina que dicho parmetro ser utilizado para pasar informacin al cdigo
llamador, es decir, viene a ser un parmetro pasado por referencia.
Dicha lista puede contener un mximo de 255 parmetros.
Sentencias_SQL:
Como se explic anteriormente, el cuerpo del procedimiento puede estar compuesto de cualquier
tipo de instruccin SQL, a excepcin de las siguientes:
CREATE VIEW
CREATE DEFAULT
CREATE RULE
CREATE PROCEDURE
CREATE TRIGGER
Entre las instrucciones que puede contener, est la llamada a otros procedimientos almacenados,
los cuales podrn acceder a los objetos pertenecientes al llamador, exceptuando las tablas
temporales creadas por el mismo.

RETURN [Valor]
Un procedimiento almacenado puede devolver un valor de retorno de tipo integer , no nulo, que
puede ser rescatado por el cdigo llamador para tener conocimiento del resultado del proceso de
dicho procedimiento. Los valores -1 al -99 estn reservados por el sistema, as como el 0 que se
interpreta como finalizado con xito. Si no se proporciona un cdigo definido por el usuario, se
utilizan los del sistema. De la misma forma los definidos por el usuario tiene prioridad sobre los
definidos por elsistema. En caso de producirse varios errores a lo largo de la ejecucin del mismo
procedimiento, se devuelve el cdigo cuyo valor absoluto es mayor. Algunos ejemplos de cdigos
y sus significados son los siguientes:
TRIGGERS (DISPARADORES)
Un trigger es un tipo especial de procedimiento almacenado que se ejecuta automticamente al
intentarse efectuar una modificacin de los datos, en la tabla a la que se encuentran asociados.
Las operaciones que pueden disparar un trigger son las correspondientes a las instrucciones SQL
, INSERT , UPDATE Y DELETE .
Puede definirse un trigger para cada una de ellas, o bien definir un trigger asociado a una
combinacin de las mismas.
La mayor utilidad que se confiere a un trigger, es la de asegurar la integridad referencial o el
cumplimiento de las distintas reglas definidas, si bien estas son operaciones que pueden delegarse
en el propio servidor, mediante las instrucciones y clusulas de especificacin de las reglas de
integridad, definidas durante la creacin de las tablas, o aadidas posteriormente.
El hecho de tener algn trigger asociado a una tabla, incide de forma negativa en cuanto al
rendimiento se refiere, si bien la mayor parte del tiempo empleado en su ejecucin corresponde al
acceso a las diferentes tablas implicadas en los chequeos de integridad En relacin a la creacin de
los triggers, las herramientas disponibles son las mismas que en el
Caso de los procedimientos almacenados, si bien debern utilizarse las opciones correspondientes.
La instruccin que permite la creacin de untrigger es CREATE TRIGGER , y su sintaxis es la
siguiente:
CREATE TRIGGER Nombre_del_Trigger
ON Nombre_de_la_tabla
FOR {INSERT,UPDATE,DELETE}
AS (Sentecias_SQL)
Donde:

Nombre_del_Trigger :
Identificador que determina el nombre del trigger en la base de datos y que debe cumplir las
reglas de construccin de identificadores en SQL Server.
Nombre_de_la_tabla :
Nombre de la tabla sobre la que ser ejecutado el trigger, en caso de ser sta alterada, en cuanto a
datos se refiere.
INSERT:
Instruccin de insercin de filas.
UPDATE:
Instruccin de actualizacin de filas.
DELETE :
Instruccin de eliminacin de filas.
Sentencias_SQL
Cualquier tipo de sentencia SQL, a excepcin de las siguientes:
Cualquier instruccin CREATE
Cualquier instruccin DROP
ALTER TABLE y ALTER DATABASE
SELECT INTO
GRANT y REVOKE
En el caso en que la instruccin CREATE TRIGGER forme parte de un conjunto de instrucciones (
Batch ), sta deber ser la primera y slo puede ser aplicada sobre una tabla.
Aunque desde el trigger pueden referenciarse objetos de otras bases de datos, ste slo puede se
creado en la base de datos en curso.
El intento de crear un trigger sobre un trigger ya existente, provoca la sustitucin inmediata y sin
aviso, del anterior.
Los triggers pueden ser anidados y permiten un nivel mximo de anidamiento de 16. En caso de
que un trigger caiga en un bucle infinito, se acabar produccin un error de desbordamiento del
nivel de anidamiento.

Los triggers no son reentrantes lo que quiere decir queen caso de que un trigger en ejecucin,
realice una actualizacin que provoque la activacin del mismo, tal activacin no se producir. Con
relacin a las transacciones hay que decir que en el caso de comenzarse una transaccin y
activarse un trigger que contenga y ejecute el comando ROLLBACK
TRANSACTION , ste deshar la transaccin completa iniciada antes de su activacin.
Otra de las mayores utilidades de los triggers es deshacer transacciones iniciadas antes de su
activacin, como consecuencia de un error detectado durante su ejecucin.
CONCLUSIN
Con la idea de facilitarnos las tareas que debemos de desempear los humanos, hemos venido
inventado diversas herramientas a lo largo de nuestra historia, que nos permiten tener una mejor
calidad de vida. Los ordenadores son uno ms de los inventos del hombre, aunque debemos decir
que las tecnologas para su fabricacin y explotacin han tenido un desarrollo sorprendente a
partir de la segunda mitad del siglo XX.
As pues, tratando de dar una solucin al problema planteado, surgieron los lenguajes de
programacin, que son como un lenguaje cualquiera, pero simplificado y con ciertas normas, para
poder trasmitir nuestros deseos al ordenador.
El Sistema de Gestin de Bases de Datos (SGBD) Consiste en un conjunto de programas,
procedimientos y lenguajes que nos proporcionan las herramientas necesarias para trabajar con
una base de datos. Incorporar una serie de funciones que nos permita definir los registros, sus
campos, sus relaciones, insertar, suprimir, modificar y consultar los datos.

Das könnte Ihnen auch gefallen