Hello friends, today we will see how to pass output parameters to stored procedures in SQL Server. Lets create a table first, using below SQL script.
CREATE TABLE [Emp](
[Eid] [int] NULL,
[Name] [varchar](15) NULL
Now we will insert few rows into this table.
Insert into Emp values(107,‘Akash Rajput’)
Insert into Emp values(108,‘Vudushi Pandey’)
Insert into Emp values(109,‘Shivika Garg’)
Insert into Emp values(110,‘Pranav Kumar’)
Insert into Emp values(115,‘Mohan Sharma’)
Lets create a stored procedure with output parameter using below SQL Script.
Alter procedure Usp_Insert_Select_Emp(@Eid int,@Name varchar(20),@ErrorCode int out)
Insert into Emp Values(@Eid,@Name)
select * from Emp
In the above script of stored procedure, we can see that we have defined one output parameter @Errorcode. To define output parameter, we just need to put “Out” or “Output” keyword after declaring the parameter(@Errorcode int Out).
In the body of stored procedure, there are two blocks which are following.
Try Block:- In try block we have written insert statement and passing the @Eid and @Name variables into the insert statement and after inserting the values, we have written select statement.
Catch Block:- In catch block we are assigning the ERROR_NUMBER()value to variable @Errorcode. ERROR_NUMBER() is system defined function which returns error number, if any error has occurred.
Lets execute this stored procedure using below SQL Statement and see the results.
declare @Err int
ExecUsp_Insert_Select_Emp116,‘Priyanka Verma’, @Err out
We can see in the above screenshot that one row has inserted successfully in employee table. Lets click on the messages tab(encircled by red color) to see if any error code has been return by the stored procedure or not.
We can see in the above screenshot that messages tab has no error code. Lets execute the stored procedure one more time with different parameters.
declare @Err int
ExecUsp_Insert_Select_Emp116,‘Vinod Kumar Yadav’, @Err out
This time we received the error code(8152),as we can see that in the @Name parameter we have passed “Vinod Kumar Yadav”, which is having length(17) while “Emp” table has length(15) for “Name” column. Hence an error occurred and control went to Catch block and we received the error code.
Note:- Generally we use output parameters for error handling but there can be other business scenarios where we can use these output parameters.
I hope you will find this article useful.
848 total views, 1 views today