Articles

parámetros del procedimiento almacenado de SQL Server

en el tutorial anterior, ha aprendido cómo crear un procedimiento almacenado simple que envuelve una instrucción SELECT. Cuando llama a este procedimiento almacenado, simplemente ejecuta la consulta y devuelve un conjunto de resultados.

en este tutorial, extenderemos el procedimiento almacenado que le permite pasar uno o más valores a él. El resultado del procedimiento almacenado cambiará en función de los valores de los parámetros.,Crear un procedimiento almacenado con un parámetro

la siguiente consulta devuelve una lista de productos de la tabla products en la base de datos de muestra:

Puede crear un procedimiento almacenado que envuelva esta consulta utilizando la instrucción CREATE PROCEDURE:

Code language: SQL (Structured Query Language) (sql)

Sin embargo, esta vez podemos agregar un parámetro al procedimiento almacenado para encontrar los productos cuyos precios de Lista son mayores que un precio de entrada:

en este ejemplo:

  • Primero, agregamos un parámetro llamado @min_list_price al procedimiento almacenado uspFindProducts., Cada parámetro debe comenzar con el signo @. Las palabras clave AS DECIMAL especifican el tipo de datos del parámetro @min_list_price. El parámetro debe estar rodeado por los corchetes de apertura y cierre.
  • En segundo lugar, utilizamos el parámetro@min_list_priceen la cláusulaWHEREde la instrucciónSELECTpara filtrar solo los productos cuyos precios de Lista son mayores o iguales a los@min_list_price.,

la Ejecución de un procedimiento almacenado con un parámetro

Para ejecutar el uspFindProducts procedimiento almacenado, se pasa un argumento es como sigue:

Code language: SQL (Structured Query Language) (sql)

El procedimiento almacenado devuelve todos los productos cuyos precios son superiores o iguales a 100.,

si cambia el argumento a 200, obtendrá un conjunto de resultados diferente:

Code language: SQL (Structured Query Language) (sql)

procedimiento con múltiples parámetros

los procedimientos almacenados pueden tomar uno o más parámetros. Los parámetros están separados por comas.,iv> procedimiento almacenado agregando un parámetro más llamado @max_list_price a él:

Una vez que el procedimiento almacenado se modifica con éxito, puede ejecutarlo pasando dos argumentos, uno para @min_list_price y el otro para @max_list_price:

Code language: SQL (Structured Query Language) (sql)

lo siguiente muestra la salida:

usando parámetros con nombre

en caso de que los procedimientos almacenados tengan múltiples parámetros, es mejor y más claro para ejecutar los procedimientos almacenados utilizando parámetros con nombre.,

Por ejemplo, la siguiente instrucción se ejecuta el uspFindProducts procedimiento almacenado utilizando los parámetros con nombre @min_list_pricey @max_list_price:

Code language: SQL (Structured Query Language) (sql)

El resultado del procedimiento almacenado es el mismo sin embargo la declaración es más evidente.

crear parámetros de texto

la siguiente instrucción añade el parámetro @name como parámetro de cadena de caracteres al procedimiento almacenado.,

en la cláusula WHERE de la declaración SELECT, agregamos la siguiente condición:

Code language: SQL (Structured Query Language) (sql)

al hacer esto, el procedimiento almacenado devuelve los productos cuyos precios de Lista están en el rango de precios de Lista mínimos y máximos y los nombres de los productos también contienen texto que pasas.,

una vez que el procedimiento almacenado se altera con éxito, puede ejecutarlo de la siguiente manera:

en esta declaración, utilizamos el procedimiento almacenado uspFindProducts para encontrar el producto cuyos precios de Lista están en el rango de 900 y 1,000 y sus nombres contienen la palabra Trek.,

La siguiente imagen se muestra la salida:

la Creación de parámetros opcionales

Cuando se ejecuta el uspFindProducts procedimiento almacenado, debe pasar los tres argumentos correspondientes a los tres parámetros.

SQL Server le permite especificar valores predeterminados para los parámetros para que cuando llame a procedimientos almacenados, pueda omitir los parámetros con valores predeterminados.,

Consulte el siguiente procedimiento almacenado:

En este procedimiento almacenado, se le asignó 0 como el valor predeterminado para el @min_list_price parámetro y 999,999 como el valor predeterminado para el @max_list_price parámetro.,

Once the stored procedure is compiled, you can execute it without passing the arguments to @min_list_price and @max_list_price parameters:

Code language: SQL (Structured Query Language) (sql)

In this case, the stored procedure used 0 for @min_list_price parameter and 999,999 for the @max_list_price parameter when it executed the query.,

El @min_list_price y @max_list_price parámetros se denominan parámetros opcionales.

por supuesto, también puede pasar los argumentos a los parámetros opcionales., Por ejemplo, la siguiente declaración devuelve todos los productos cuyos precios de Lista son mayores o iguales a 6,000 y los nombres contienen la palabra Trek:

Code language: SQL (Structured Query Language) (sql)

usando null como el valor predeterminado

en el procedimiento almacenado uspFindProducts, usamos 999,999 como el precio de Lista máximo predeterminado. Esto no es robusto porque en el futuro puede tener productos con los precios de lista que son mayores que eso.,

una técnica típica para evitar esto es usar NULL como el valor predeterminado para los parámetros:

en la cláusula WHERE, cambiamos la condición para manejar NULL cbe2c66385″> parámetro:

Code language: SQL (Structured Query Language) (sql)

la siguiente instrucción ejecuta el procedimiento almacenado uspFindProducts para encontrar el producto cuyos precios de Lista son mayores o iguales a 500 y los nombres contienen la palabraHaro.,

Code language: SQL (Structured Query Language) (sql)

En este tutorial, usted ha aprendido cómo crear y ejecutar procedimientos almacenados con uno o más parámetros. También aprendió a crear parámetros opcionales y usar NULL como valores predeterminados para los parámetros.