Sql procedural

Solo disponible en BuenasTareas
  • Páginas : 6 (1436 palabras )
  • Descarga(s) : 0
  • Publicado : 26 de noviembre de 2011
Leer documento completo
Vista previa del texto
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 lógica alrededor de las sentencias de SQL tradicionales. El SQL PL es un lenguaje de programación de alto nivel con una sintaxis sencilla y sentencias habituales de control de programación, 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 parámetros, variables, sentencias de asignación, sentencias de control de SQL PL y sentencias de SQL compuestas. Los procedimientos de SQL PL también dan soporte a un potente mecanismo de manejo de errores y condiciones, a las llamadas anidadas yrepetitivas y a la devolución de varios conjuntos de resultados al llamante o a la aplicación 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 deinstrucciones SQL, tanto de consulta, como de manipulación de datos, como de control de la secuencia del programa, asociados a un nombre, y que son ejecutados en conjunto. Puede contener parámetros tanto de entrada como de salida (parámetros pasados por referencia), así como devolver un valor de retorno. Son precompilados al ejecutarse por primera vez, y no vuelven a ser compilados con lassubsiguientes ejecuciones, lo que proporciona una cierta mejora en el rendimiento. No obstante si se desea se puede forzar su re compilación. 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 cachés del servidor. Al mismo tiempo al ser código externo a laaplicación puede ser alterado sin que exista siempre la necesidad de modificar el código 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 realizaciónde distintas tareas de administración.

Un procedimiento almacenado se crea con la sentencia CREATE PROCEDURE, que debe ser la única dentro de un mismo batch . La creación de un procedimiento almacenado puede ser realizada bien desde el ISQL_W , bien desde la opción Manage.Stored Procedures del Enterprise Manager , o bien desde la propia ventana donde se muestran los objetos de la base dedatos, en el grupo correspondiente a los procedimientos almacenados, dentro de esta última herramienta.

La sintaxis de dicha instrucción es básicamente la siguiente:

CREATE PROCEDURE Nombre_del_procedimiento
[Lista_de_parámetros]
AS
(Sentencias SQL)
[RETURN [Valor]]

Donde:

Nombre_del_procedimiento :

Identificador que determina el nombre asignado al procedimiento y que debe cumplircon la regla de definición de identificadores establecida en MSSQL Server.

Lista_de_parámetros :

Parámetros definidos en el procedimiento con la siguiente sintaxis:

@nombre_var Tipo_var [OUTPUT]

El símbolo @ es necesario no sólo en la declaración sino que forma parte del propio nombre. La claúsula OUPUT determina que dicho parámetro será utilizado para pasar información al códigollamador, es decir, viene a ser un parámetro pasado por referencia.

Dicha lista puede contener un máximo de 255 parámetros.

Sentencias_SQL:

Como se explicó anteriormente, el cuerpo del procedimiento puede estar compuesto de cualquier tipo de instrucción SQL, a excepción de las siguientes:

CREATE VIEW
CREATE DEFAULT
CREATE RULE
CREATE PROCEDURE
CREATE TRIGGER

Entre las...
tracking img