Para crear un procedimiento en SQL Server usaremos la sentencia CREATE PROCEDURE. Como habíamos visto en el articulo de creación de procedimientos en MySQL, un procedimiento es un conjunto de instrucciones relacionadas con un objetivo especifico. Dichas instrucciones se guardan bajo un nombre en el servidor, para ser utilizadas de nuevo en el futuro.
Como creo un procedimiento en SQL Server?Con la sentencia CREATE PROCEDURE. Debemos especificar el nombre del procedimiento, los parámetros que implementará, también podemos establecer si el procedimiento es temporal local(solo lo ejecuta el usuario que lo creó) o temporal global(lo ejecutan todos los usuarios). Veamos la sintaxis:
Sintaxis
CREATE [PROCEDURE|PROC] nombre_procedimiento [#|##] [( parámetro1,parámetro2,... )][{FORREPLICATION|WITHRECOMPILE}][WITHENCRYPTION] AS<bloque de sentencias>
Fíjate en el detalle de cada parte de la sintaxis:
CREATE [PROCEDURE|PROC]:Con esta sentencia indicamos que queremos crear un procedimiento. Podemos usar CREATE PROC o CREATE PROCEDURE, las dos son equivalentes.
nombre_procedimiento:Es el nombre que le pondremos a nuestro procedimiento. Es recomendable ponerle un nombre alusivo a la acción del procedimiento.
[#|##]:El signo número individual indica que el procedimiento será temporal local. Los dos símbolos numero indica que será temporal global.
[( parámetro1,parámetro2,... )]:Se refiere a los parámetros del procedimiento. Si el procedimiento tienen parámetros deben encerrarse en paréntesis y declararlos con la siguiente definición:
@nombre_parametro TIPO [VARYING] [= valor_por_defecto][OUTPUT]
donde VARYING especifica que un parámetro de tipo CURSOR será de salida y OUTPUT para indicar que un parámetro será de salida.
FORREPLICATION:Se usa para especificar que el procedimiento será para replicación.
WITHRECOMPILE:Indica que el procedimiento se va a compilar cada vez que se ejecuta. Normalmente un procedimiento se guarda compilado en cache para no tener que compilar de nuevo.
WITHENCRYPTION:Encripta el las instrucciones del procedimiento para protegerlo.
Tienes algún ejemplo?Claro!, a continuación construiremos un procedimiento con respecto al siguiente enunciado:
Cree un procedimiento que imprima el total de una factura al ingresar el código de la factura.
Normalmente en un sistema de facturación hay una tabla FACTURA y RENGLON. Donde renglón es el detalle de cada articulo comprado y su precio. Por lo tanto una factura es especificada por muchos renglones. Teniendo esto claro vamos a escribir nuestro procedimiento, en el cual sumaremos el resultado de cada renglón en la factura con respecto al parámetro de entrada.
CREATE PROCEDURE total_factura(@id_factura INT)AS
BEGIN
SELECT SUM(UNIDADES*PRECIO) FROM RENGLONWHERE RENGLONIDFACTURA = @id_factura;
END;
Como ves, hemos hecho una sencilla consulta en la tabla RENGLON para sumar el subtotal de cada producto en la factura. En el WHERE hemos hecho una comparación del ID de la factura con el parámetro ingresado al procedimiento.
Y como ejecuto ese procedimiento amigo?Usas el comando EXEC ó su equivalente EXECUTE. Seguido a este ubicas el nombre del procedimiento. Si el procedimiento tiene parámetros entonces los pones separados por comas en seguida del nombre. Así ejecutaríamos nuestro procedimiento total_factura:
EXEC total_factura1;
James Revelo Urrea - Desarrollador independiente