patternsqlMinor
SQL Stored Procedure with Output Parameter
Viewed 0 times
storedsqlwithoutputprocedureparameter
Problem
I know how to write a stored procedure with output parameters. But I don't know the reason why I would use it over just using a simple
Can anyone give a real life example where I can use an SP with output parameter over with SP without output parameter?
Examples
SELECT statement. A normal stored procedure can still return an output in a grid (see below examples).Can anyone give a real life example where I can use an SP with output parameter over with SP without output parameter?
Examples
-- Using output parameter
SELECT @var = COUNT(*) FROM table1 WHERE gender = @gender...
-- Without output parameter
SELECT COUNT(*) FROM table WHERE gender = @gender...Solution
Output parameters in stored procedures are useful for passing a value back to the calling T-SQL, which can then use that value for other things.
Let's say you have a stored procedure that returns a state given the input of a city, with state as the output parameter:
You can now use this output parameter to pass in a value elsewhere.
For example:
To summarise, if you just want to return a value for a client application, you probably don't need an output parameter.
However, if you want to pass values around in T-SQL between stored procedures, they can be very useful.
For what it's worth, I hardly use output parameters.
Let's say you have a stored procedure that returns a state given the input of a city, with state as the output parameter:
CREATE PROCEDURE [dbo].[GetStateFromCity] (@City NVARCHAR(30), @State NCHAR(2) OUTPUT)
AS
SELECT @State = [State]
FROM [ExampleTable]
WHERE [City] = @City
GO;You can now use this output parameter to pass in a value elsewhere.
For example:
DECLARE @State int
EXEC [dbo].[GetStateFromCity] @City = 'Calgary', @State OUTPUT;
-- Do something with this value
SELECT @State;
-- Do something else
EXEC [dbo].[GetInsuranceCompanyByState] @State;To summarise, if you just want to return a value for a client application, you probably don't need an output parameter.
However, if you want to pass values around in T-SQL between stored procedures, they can be very useful.
For what it's worth, I hardly use output parameters.
Code Snippets
CREATE PROCEDURE [dbo].[GetStateFromCity] (@City NVARCHAR(30), @State NCHAR(2) OUTPUT)
AS
SELECT @State = [State]
FROM [ExampleTable]
WHERE [City] = @City
GO;DECLARE @State int
EXEC [dbo].[GetStateFromCity] @City = 'Calgary', @State OUTPUT;
-- Do something with this value
SELECT @State;
-- Do something else
EXEC [dbo].[GetInsuranceCompanyByState] @State;Context
StackExchange Database Administrators Q#153738, answer score: 5
Revisions (0)
No revisions yet.