Cómo utilizar procedimientos almacenados de SQL

Los procedimientos almacenados residen en la base de datos en el servidor en lugar de ejecutar en el cliente - donde se encuentran todos los procedimientos antes de SQL / PSM. Después de definir un procedimiento almacenado, puede invocar con un LLAMADA comunicado. Mantener el procedimiento en el servidor en lugar de en el cliente reduce el tráfico de la red, acelerando así el rendimiento. El único tráfico que necesita para pasar desde el cliente al servidor es el LLAMADA comunicado.

Puede crear este procedimiento de la siguiente manera:

EXEC sqlCreate PROCEDIMIENTO ChessMatchScore (INscore CHAR (3), OUT resultar CHAR (10)) COMENZAR resultado THENSET ATOMICCASE scoreWHEN '1-0' = 'whitewins' -cuando '0-1' THENSET Resultado Resultado -ELSESET = 'blackwins' = ' dibujar "-END CASEEND -

Después de crear un procedimiento almacenado como el de este ejemplo, puede invocar con un LLAMADA declaración similar a la siguiente declaración:

LLAME ChessMatchScore ('1-0',: Resultado) -

La primera argumentis un parámetro de entrada que se alimenta a la ChessMatchScore procedimiento. El segundo argumento es una variable integrada que admite el valor asignado al parámetro de salida que el ChessMatchScore procedimiento utiliza para devolver su resultado a la rutina de llamada. En este caso, devuelve 'victorias blancas'.

SQL: 2011 ha añadido un par de mejoras a los procedimientos almacenados. La primera de ellas es la introducción de argumentos con nombre.

Este es el equivalente de la convocatoria anterior, con argumentos con nombre:

LLAME ChessMatchScore (resultado =>: Resultado, puntuación => '1-0') -

Debido a que los argumentos se llaman, pueden ser escritos en cualquier orden sin ser confundido un peligro de ellos.

La segunda mejora añadida en SQL: 2011 es la adición de argumentos de entrada por defecto. Puede especificar un argumento por defecto para el parámetro de entrada. Después de hacer eso, no es necesario especificar un valor de entrada en el LLAMADA declaración-se supone que el valor por defecto. (Por supuesto, usted quiere hacer esto sólo si el valor por defecto fuera de hecho el valor que quería enviar al procedimiento.)

He aquí un ejemplo de que el uso de:

EXEC sqlCreate PROCEDIMIENTO ChessMatchScore (INscore CHAR (3) DEFAULT '1-0', OUT resultado CHAR (10)) COMENZAR ATOMICCASE scoreWHEN '1-0' THENSET resultado = 'whitewins' -cuando '0-1' THENSET resultado blackwins = ' 'resultado -ELSESET =' draw '-END CASEEND -

Ahora puede llamar a este procedimiento thusly con el valor por defecto:

LLAME ChessMatchScore (: Resultado) -

Por supuesto, usted sólo quiere hacer esto si el valor por defecto, de hecho, el valor que quería enviar al procedimiento.




» » » » Cómo utilizar procedimientos almacenados de SQL