Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

Procedimientos almacenados: Parámetros de entrada, Resúmenes de Informática

Cómo crear y utilizar procedimientos almacenados con parámetros de entrada en SQL Server. Los procedimientos almacenados son una forma eficaz de pasar información a un procedimiento y recibir resultados. Se detalla la sintaxis para declarar parámetros de entrada, su uso y cómo ejecutar procedimientos con valores por defecto. Se incluyen ejemplos prácticos.

Qué aprenderás

  • ¿Cómo se ejecuta un procedimiento almacenado con parámetros de entrada en SQL Server?
  • ¿Cómo se declara un procedimiento almacenado con parámetros de entrada en SQL Server?
  • ¿Qué ocurre si no se especifica un valor para un parámetro de entrada en un procedimiento almacenado?

Tipo: Resúmenes

2014/2015

Subido el 24/11/2022

maritza-garcia-15
maritza-garcia-15 🇨🇴

5 documentos

1 / 6

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
22 - Procedimientos almacenados (parámetros de entrada)
Los procedimientos almacenados pueden recibir y devolver información; para ello
se emplean parámetros, de entrada y salida, respectivamente.
Veamos los primeros. Los parámetros de entrada posibilitan pasar información a un
procedimiento.
Para que un procedimiento almacenado admita parámetros de entrada se deben
declarar variables como parámetros al crearlo. La sintaxis es:
create proc NOMBREPROCEDIMIENTO
@NOMBREPARAMETRO TIPO =VALORPORDEFECTO
as SENTENCIAS;
Los parámetros se definen luego del nombre del procedimiento, comenzando el
nombre con un signo arroba (@). Los parámetros son locales al procedimiento, es
decir, existen solamente dentro del mismo. Pueden declararse varios parámetros
por procedimiento, se separan por comas.
Cuando el procedimiento es ejecutado, deben explicitarse valores para cada uno de
los parámetros (en el orden que fueron definidos), a menos que se haya definido un
valor por defecto, en tal caso, pueden omitirse. Pueden ser de cualquier tipo de
dato (excepto cursor).
Luego de definir un parámetro y su tipo, opcionalmente, se puede especificar un
valor por defecto; tal valor es el que asume el procedimiento al ser ejecutado si no
recibe parámetros. Si no se coloca valor por defecto, un procedimiento definido con
parámetros no puede ejecutarse sin valores para ellos. El valor por defecto puede
ser "null" o una constante, también puede incluir comodines si el procedimiento
emplea "like".
Creamos un procedimiento que recibe el nombre de un autor como parámetro para
mostrar todos los libros del autor solicitado:
create procedure pa_libros_autor
@autor varchar(30)
as
select titulo, editorial,precio
from libros
where autor= @autor;
El procedimiento se ejecuta colocando "execute" (o "exec") seguido del nombre del
procedimiento y un valor para el parámetro:
exec pa_libros_autor 'Borges';
Creamos un procedimiento que recibe 2 parámetros, el nombre de un autor y el de
una editorial:
create procedure pa_libros_autor_editorial
@autor varchar(30),
@editorial varchar(20)
as
select titulo, precio
from libros
where autor= @autor and
pf3
pf4
pf5

Vista previa parcial del texto

¡Descarga Procedimientos almacenados: Parámetros de entrada y más Resúmenes en PDF de Informática solo en Docsity!

22 - Procedimientos almacenados (parámetros de entrada)

Los procedimientos almacenados pueden recibir y devolver información; para ello se emplean parámetros, de entrada y salida, respectivamente. Veamos los primeros. Los parámetros de entrada posibilitan pasar información a un procedimiento. Para que un procedimiento almacenado admita parámetros de entrada se deben declarar variables como parámetros al crearlo. La sintaxis es: create proc NOMBREPROCEDIMIENTO @NOMBREPARAMETRO TIPO =VALORPORDEFECTO as SENTENCIAS; Los parámetros se definen luego del nombre del procedimiento, comenzando el nombre con un signo arroba (@). Los parámetros son locales al procedimiento, es decir, existen solamente dentro del mismo. Pueden declararse varios parámetros por procedimiento, se separan por comas. Cuando el procedimiento es ejecutado, deben explicitarse valores para cada uno de los parámetros (en el orden que fueron definidos), a menos que se haya definido un valor por defecto, en tal caso, pueden omitirse. Pueden ser de cualquier tipo de dato (excepto cursor). Luego de definir un parámetro y su tipo, opcionalmente, se puede especificar un valor por defecto; tal valor es el que asume el procedimiento al ser ejecutado si no recibe parámetros. Si no se coloca valor por defecto, un procedimiento definido con parámetros no puede ejecutarse sin valores para ellos. El valor por defecto puede ser "null" o una constante, también puede incluir comodines si el procedimiento emplea "like". Creamos un procedimiento que recibe el nombre de un autor como parámetro para mostrar todos los libros del autor solicitado: create procedure pa_libros_autor @autor varchar(30) as select titulo, editorial,precio from libros where autor= @autor; El procedimiento se ejecuta colocando "execute" (o "exec") seguido del nombre del procedimiento y un valor para el parámetro: exec pa_libros_autor 'Borges'; Creamos un procedimiento que recibe 2 parámetros, el nombre de un autor y el de una editorial: create procedure pa_libros_autor_editorial @autor varchar(30), @editorial varchar(20) as select titulo, precio from libros where autor= @autor and

editorial=@editorial; El procedimiento se ejecuta colocando "execute" (o "exec") seguido del nombre del procedimiento y los valores para los parámetros separados por comas: exec pa_libros_autor_editorial 'Richard Bach','Planeta'; Los valores de un parámetro pueden pasarse al procedimiento mediante el nombre del parámetro o por su posición. La sintaxis anterior ejecuta el procedimiento pasando valores a los parámetros por posición. También podemos emplear la otra sintaxis en la cual pasamos valores a los parámetros por su nombre: exec pa_libros_autor_editorial @editorial='Planeta', @autor='Richard Bach'; Cuando pasamos valores con el nombre del parámetro, el orden en que se colocan puede alterarse. No podríamos ejecutar el procedimiento anterior sin valores para los parámetros. Si queremos ejecutar un procedimiento que permita omitir los valores para los parámetros debemos, al crear el procedimiento, definir valores por defecto para cada parámetro: create procedure pa_libros_autor_editorial @autor varchar(30)='Richard Bach', @editorial varchar(20)='Planeta' as select titulo, autor,editorial,precio from libros where autor= @autor and editorial=@editorial; Podemos ejecutar el procedimiento anterior sin enviarle valores, usará los predeterminados. Si enviamos un solo parámetro a un procedimiento que tiene definido más de un parámetro sin especificar a qué parámetro corresponde (valor por posición), asume que es el primero. Es decir, SQL Server asume que los valores se dan en el orden que fueron definidos, no se puede interrumpir la secuencia. Si queremos especificar solamente el segundo parámetro, debemos emplear la sintaxis de paso de valores a parámetros por nombre: exec pa_libros_autor_editorial2 @editorial='Paidos'; Podemos emplear patrones de búsqueda en la consulta que define el procedimiento almacenado y utilizar comodines como valores por defecto: create proc pa_libros_autor_editorial @autor varchar(30) = '%', @editorial varchar(30) = '%' as select titulo,autor,editorial,precio from libros where autor like @autor and editorial like @editorial;

Es equivalente a CREATE PROCEDURE calcula_comision AS… @parametro: representa el nombre de un parámetro. Se pueden declarar uno o más parámetros indicando para cada uno su nombre (debe de empezar por arroba) y su tipo de datos, y opcionalmente un valor por defecto (=valorPredet) este valor será el asumido si en la llamada el usuario no pasa ningún valor para el parámetro. Un procedimiento almacenado puede tener un máximo de 2.100 parámetros. Los parámetros son locales para el procedimiento; los mismos nombres de parámetro se pueden utilizar en otros procedimientos. De manera predeterminada, los parámetros sólo pueden ocupar el lugar de expresiones constantes; no se pueden utilizar en lugar de nombres de tabla, nombres de columna o nombres de otros objetos de base de datos. VARYING Sólo se aplica a los parámetros de tipo cursor por lo que se explicará cuando se expliquen los cursores. OUTPUT | OUT (son equivalentes) Indica que se trata de un parámetro de salida. El valor de esta opción puede devolverse a la instrucción EXECUTE que realiza la llamada. El parámetro variable OUTPUT debe definirse al crear el procedimiento y también se indicará en la llamada junto a la variable que recogerá el valor devuelto del parámetro. El nombre del parámetro y de la variable no tienen por qué coincidir; sin embargo, el tipo de datos y la posición de los parámetros deben coincidir a menos que se indique el nombre del parámetro en la llamada de la forma @parametro=valor. Procedimiento básico CREATE PROCEDURE Dice_Hola AS PRINT ‘Hola’; GO –- Indicamos GO para cerrar el lote que crea el procedimiento y empezar otro lote. EXEC Dice_Hola; -- De esta forma llamamos al procedimiento (se ejecuta). En este caso, como la llamada es la primera del lote (va detrás del GO) podíamos haber obviado la palabra EXEC y haber escrito directamente: Dice_Hola

Las Vistas

Las consultas que hemos visto hasta ahora son trozos de código SQL que podemos guardar en un archivo de texto y abrir y ejecutar cuando queramos, pero si queremos que nuestra consulta de recuperación de datos se guarde en la propia base de datos y se comporte como una tabla (algo parecido a una consulta almacenada de Access), la tenemos que definir como una vista. Esta vista tiene la ventaja entre otras de poder ser utilizada como si fuese una tabla en otras consultas. Realmente al ejecutarla obtenemos una tabla lógica almacenada en memoria y lo que se guarda en la base de datos es su definición, la instrucción SQL que permite recuperar los datos.

Para definir una vista en el Explorador de Objetos desplegamos la base de datos donde la guardaremos y elegimos la opción Nueva vista del menú contextual de la carpeta Vistas , se pondrá en funcionamiento el generador de consultas pidiéndonos las tablas en las que se basará la vista. Pulsamos sobre la tabla a añadir al diseño de la vista y pulsamos el botón Agregar , podemos añadir así cuántas tablas queramos. Después de Cerrar , vemos a la derecha del Explorador de Objetos la pestaña con la definición de la vista que puede incluir varios paneles: