Tutorial con ejemplos de código T-SQL para ejecutar un procedimiento almacenado en SQL Server con uno o varios parámetros de entrada.
Dependiendo del código T-SQL, ejecutar un procedimiento con parámetros en SQL Server requiere proporcionar valores obligatorios, de lo contrario, se utilizarán los valores predeterminados. Primero debes establecer el valor NULL en el código del procedimiento, ya que creamos los parámetros de manera obligatoria o no obligatoria. Para parámetros opcionales, podemos asignar un valor predeterminado en la declaración de creación del procedimiento SQL. Así, los parámetros opcionales no impiden ejecutar el procedimiento y obtener una retroalimentación potencial en SSMS.
Tabla de contenidos
1. Ejecutar un procedimiento almacenado en SQL Server con un parámetro
Primero, crea el procedimiento a llamar o asegúrate de que el objetivo ya esté en la base de datos. Si no, ejecuta el código a continuación, es similar al utilizado para crear el procedimiento almacenado uspGetCustomer de este tutorial. En este procedimiento almacenado, el único parámetro de entrada es el ID del Cliente, y es obligatorio. El objetivo del procedimiento es mostrar toda la información, es decir, todas las columnas de la tabla Clientes para el número de cliente dado como parámetro. El procedimiento almacenado de muestra con este script:
CREATE PROCEDURE uspGetCustomer @NoClient INT AS SELECT * FROM [dbo].[CLIENTS] WHERE [NOCLIENT] = @NoClient GO
Aquí hay un ejemplo simple de cómo ejecutar un procedimiento almacenado MS SQL con uno o más parámetros como entrada. De hecho, para pasar la información de entrada al código SQL, ejecuta este código y adapta esta sintaxis al caso de negocio específico:
EXEC dbo.uspGetCustomer @NoClient = 1;
2. Ejecutar un procedimiento almacenado con múltiples parámetros en T-SQL
En este segundo caso, se utilizan como parámetros el ID del Cliente y la Ciudad. En estos ejemplos más prácticos, por supuesto, es posible usar solo nombres y valores explícitos en lugar de identificadores técnicos.
-- Crear el mismo procedimiento con dos parámetros y también valores predeterminados NULL CREATE PROCEDURE uspGetCustomer @ClientNumber int = NULL, @City nvarchar(20) = NULL AS SELECT * FROM [dbo].[CLIENTS] WHERE [ClientNumber] = @ClientNumber OR [City] = @City GO
Así, para ejecutar un procedimiento almacenado codificado en SQL Server, simplemente llama al procedimiento, con los parámetros obligatorios separados por valores y en el orden correcto, o nombrados explícitamente, que es la forma recomendada.
EXEC dbo.uspGetCustomer @ClientNumber = 2, @City = 'Casablanca';
De hecho, en el párrafo anterior menciono el hecho de que no necesitas llamar explícitamente a los nombres de las variables, puedes llamarlo de esta manera:
EXEC dbo.uspGetCustomer 2, 'Casablanca';
3. El orden importa al ejecutar procedimientos almacenados en T-SQL
Pero en este caso, se debe respetar el orden. Por ejemplo, intenta ejecutar el código a continuación, es decir, sin respetar el orden.
EXEC dbo.uspGetCustomer 'Casablanca', 2;
Podrías encontrar un error de SQL Server como este, porque el tipo de los parámetros no es el mismo. Y si ambos fueran enteros, podría ser peor, porque entonces el resultado sería falso.
Msg 8114, Nivel 16, Estado 1, Procedimiento dbo.uspGetCustomer, Línea 0 [Línea de inicio del lote 0]
Error al convertir el tipo de datos varchar a int.
Una sintaxis simple siempre que se utilicen los parámetros y valores predeterminados
Para avanzar en el viaje de aprendizaje de SQL Server y T-SQL, este es un breve tutorial sobre cómo devolver valores con un procedimiento almacenado utilizando la opción de salida. De hecho, los procedimientos almacenados, a diferencia de las funciones SQL, no siempre devuelven un valor. Para devolver un valor con un procedimiento MS SQL, usa la opción OUTPUT.
Be the first to comment