Stored Procedure with OUTPUT Parameters

Rumman Ansari   Software Engineer   2023-03-25   5564 Share
☰ Table of Contents

Table of Content:


To create an SP with output parameter, we use the keywords OUT or OUTPUT.

Example: Use this below Database

Code:



USE TestDataBase

Code: Create a table to understand stored procedure


CREATE TABLE tbl_customer
(
customerID INT PRIMARY KEY IDENTITY(100000000,1),
customerSSNId INT,
customerName VARCHAR(100),
customerAge int,
customerAddressLine1 VARCHAR(100),
customerAddressLine2 VARCHAR(100),
customerCityID VARCHAR(50),
customerStateID VARCHAR(50) 
)


Code: Insert a record inside the table


INSERT INTO tbl_customer VALUES (12345678, 'Rumman Ansari', 23, 'Kolkata', 'Rajarhat', '12', '29')

Code: See the inserted record


Select * from tbl_customer

Example 4: Stored Procedure With OUT Parameters

Code: Create another store procedure which will return a parameter as output


/* Insert into Customer table with data records
Stored Procedure Example - 4 | Stored Procedure With Out Parameters
*/

CREATE PROCEDURE sp_insertIntoTable
 (   
@customerSSNId INT,
@customerName VARCHAR(100),
@customerAge int,
@customerAddressLine1 VARCHAR(100),
@customerAddressLine2 VARCHAR(100),
@customerCityID VARCHAR(50),
@customerStateID VARCHAR(50),
@customerIDOut INT OUT
 )
 AS
 BEGIN

 INSERT INTO tbl_customer VALUES 
 ( 
	@customerSSNId,
	@customerName,
	@customerAge,
	@customerAddressLine1,
	@customerAddressLine2,	
	@customerCityID,
	@customerStateID
 )
	SET @customerIDOut = @@IDENTITY
END

Example 5: Stored Procedure With OUTPUT Parameters

If you declare a parameter as OUTPUT, it acts as Both Input and OUTPUT

Code: Execute the above stored procedure


-- Execute
DECLARE @customerIDOut1 INT
EXEC sp_insertIntoTable 12345678, 'Ram Ansari', 23, 'Kolkata', 'Rajarhat', '12', '29', @customerIDOut1 OUT
PRINT @customerIDOut1 

-- See table content
SELECT * FROM tbl_customer


Code: Create a stored procedure which will take a input parameter as well as give a output parameter


/* Insert into Customer table with data records
Stored Procedure Example - 5 | Stored Procedure With Output Parameters
*/ 

ALTER PROCEDURE sp_insertIntoTable1
 (   
@customerSSNId INT OUTPUT,
@customerName VARCHAR(100),
@customerAge int,
@customerAddressLine1 VARCHAR(100),
@customerAddressLine2 VARCHAR(100),
@customerCityID VARCHAR(50),
@customerStateID VARCHAR(50),
@customerIDOut INT OUT
 )
 AS
 BEGIN

 INSERT INTO tbl_customer VALUES 
 ( 
	@customerSSNId,
	@customerName,
	@customerAge,
	@customerAddressLine1,
	@customerAddressLine2,	
	@customerCityID,
	@customerStateID
 )
	SET @customerIDOut = @@IDENTITY
	SET @customerSSNId = @customerSSNId+1
END

Code: Execute the above stored procedure


-- Execute
DECLARE @customerIDOut1 INT,  @customerSSNId1 INT = 12345678
EXEC sp_insertIntoTable1 @customerSSNId1 OUTPUT, 'Ram Ansari', 23, 'Kolkata', 'Rajarhat', '12', '29', @customerIDOut1 OUT
PRINT @customerIDOut1
PRINT @customerSSNId1

 
-- See the table content
SELECT * FROM tbl_customer

You can pass parameters in any order, when you use the parameter names.

The following system stored procedures, are extremely useful when working procedures.


sp_help SP_Name : View the information about the stored procedure, like parameter names, their datatypes etc. sp_help can be used with any database object, like tables, views, SP's, triggers etc. Alternatively, you can also press ALT+F1, when the name of the object is highlighted.

sp_helptext SP_Name : View the Text of the stored procedure

sp_depends SP_Name : View the dependencies of the stored procedure. This system SP is very useful, especially if you want to check, if there are any stored procedures that are referencing a table that you are abput to drop. sp_depends can also be used with other database objects like table etc.

Note: All parameter and variable names in SQL server, need to have the @symbol.