Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Save to My Library
Look up keyword
Like this
456Activity
0 of .
Results for:
No results containing your search query
P. 1
Procedimientos Almacenados y Triggers en SQL Server

Procedimientos Almacenados y Triggers en SQL Server

Ratings:

4.78

(36)
|Views: 78,564 |Likes:
Published by wireless2007
Procedimientos Almacenados y Triggers en SQL Server
Procedimientos Almacenados y Triggers en SQL Server

More info:

Published by: wireless2007 on Jan 15, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

08/16/2013

pdf

text

original

 
1
Algoritmo 
. La revista para el programador de sistemas de bases de datos.
http://www.eidos.es - © Grupo EIDOS
Procedimientos almacenados y
Triggers 
en SQL Server 6.5
Por Fernando González
Procedimientos almacenados
Un procedimiento almacenado es un objeto perteneciente a una base de datos, que contieneun conjunto de instrucciones SQL, tanto de consulta, como de manipulación de datos, como decontrol de la secuencia del programa, asociados a un nombre, y que son ejecutados enconjunto. Puede contener parámetros tanto de entrada como de salida (parámetros pasadospor 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. Noobstante si se desea se puede forzar su recompilación.Una de las principales ventajas de este tipo de objetos, es que al residir en la propia base dedatos son compartibles por todos los usuarios, pudiendo de esta manera beneficiarse de losdistintos cachés del servidor. Al mismo tiempo al ser código externo a la aplicación puede seralterado 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 determinadospor el administrador de la misma:Existen diversas clases de procedimientos almacenados, entre los que se encuentra losprocedimientos almacenados del sistema, que sirven de herramientas para la realización dedistintas tareas de administración.Un procedimiento almacenado se crea con la sentencia
CREATE PROCEDURE 
, que debe serla única dentro de un mismo
batch 
. La creación de un procedimiento almacenado puede serrealizada 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 basede datos, 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 procedimientoy que debe cumplir con la regla de definición de identificadoresestablecida en MSSQL Server.
Lista_de_parámetros 
Parámetros definidos en el procedimiento con la siguientesintaxis:
@nombre_var Tipo_var [OUTPUT] 
 
2
Algoritmo 
. La revista para el programador de sistemas de bases de datos.
http://www.eidos.es - © Grupo EIDOS
El símbolo @ es necesario no sólo en la declaración sino queforma parte del propio nombre. La claúsula OUPUT determinaque dicho parámetro será utilizado para pasar información alcódigo llamador, es decir, viene a ser un parámetro pasado porreferencia.Dicha lista puede contener un máximo de 255 parámetros.
Sentencias_SQL
Como se explicó anteriormente, el cuerpo del procedimientopuede estar compuesto de cualquier tipo de instrucción SQL, aexcepción de las siguientes:
CREATE VIEW CREATE DEFAULT CREATE RULE CREATE PROCEDURE CREATE TRIGGER 
Entre las instrucciones que puede contener, está la llamada aotros procedimientos almacenados, los cuales podrán acceder alos objetos pertenecientes al llamador, exceptuando las tablastemporales creadas por el mismo.
RETURN [Valor] 
Un procedimiento almacenado puede devolver un valor deretorno de tipo
integer 
, no nulo, que puede ser rescatado por elcódigo llamador para tener conocimiento del resultado delproceso de dicho procedimiento. Los valores -1 al -99 estánreservados por el sistema, así como el 0 que se interpreta como“finalizado con éxito”. Si no se proporciona un código definidopor el usuario, se utilizan los del sistema. De la misma forma losdefinidos por el usuario tiene prioridad sobre los definidos por elsistema. En caso de producirse varios errores a lo largo de laejecución del mismo procedimiento, se devuelve el código cuyovalor absoluto es mayor. Algunos ejemplos de códigos y sussignificados son los siguientes:
CódigoSignificado
-2Error de tipo de datos-4Error de Permisos-5Error de Sintaxis-13Base de Datos Corrupta
Llamadas a procedimientos almacenados
La sintaxis de la llamada a un procedimiento almacenado, depende de como se halla creadodicho procedimiento, por lo que en cada uno de los ejemplos que siguen, se especifica lallamada al mismo, poniéndose de manifiesto dicha sintaxis en cada caso particular.
Ejemplos
Como base de datos de trabajo para los ejemplos se a utilizado
SOPORTEDB 
cuya estructuraes accesible por todos, con lo cual no se detalla en este documento ningún elemento referentea dicha estructura.
 
3
Algoritmo 
. La revista para el programador de sistemas de bases de datos.
http://www.eidos.es - © Grupo EIDOS
Procedimiento 1
Es un procedimiento simple, sin parámetros que devuelve un conjunto de filas que cumplensiempre la misma condición.
CREATE PROCEDURE prod_1ASSELECT * FROM CLIENTES
Llamada:
EXECUTE prod_1
Procedimiento 2
Es un procedimiento que recibe dos parámetros de entrada, correspondientes a un rango decódigos de clientes, y devuelve el conjunto de filas de la tabla
CLIENTES 
cuyo código seencuentra en el rango determinado por los parámetros.
CREATE PROCEDURE prod_2@p_CodIniCHAR (6),@p_CodFinCHAR (6)ASSELECT * FROM CLIENTEWHERE IDCLIENTE BETWEEN @p_CodIni AND @p_CodFin
Llamada:
EXECUTE prod_2 ‘000100’, ‘000500’
Procedimiento 3
Es un procedimiento que recibe un parámetro de entrada y uno de salida. El parámetro deentrada corresponde a un código de tipo de producto y el de salida, el número de productosexistentes, que corresponden a dicho tipo.
CREATE PROCEDURE prod_3@p_CodTipProdCHAR (3),@p_NumProductosSMALLINT OUTPUTASSELECT @p_NumProductos = COUNT(*)

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->