Edg*_*ron 6 sql-server stored-procedures t-sql parameter
我知道如何编写带有输出参数的存储过程。但我不知道为什么我会使用它而不是仅仅使用一个简单的SELECT语句。一个普通的存储过程仍然可以在网格中返回一个输出(见下面的例子)。
任何人都可以举一个真实的例子,我可以在没有输出参数的情况下使用带有输出参数的 SP 而不是 SP 吗?
-- Using output parameter
SELECT @var = COUNT(*) FROM table1 WHERE gender = @gender...
-- Without output parameter
SELECT COUNT(*) FROM table WHERE gender = @gender...
Run Code Online (Sandbox Code Playgroud)
存储过程中的输出参数对于将值传递回调用 T-SQL 很有用,然后调用 T-SQL 可以将该值用于其他用途。
假设您有一个存储过程,它根据城市的输入返回一个州,并将州作为输出参数:
CREATE PROCEDURE [dbo].[GetStateFromCity] (@City NVARCHAR(30), @State NCHAR(2) OUTPUT)
AS
SELECT @State = [State]
FROM [ExampleTable]
WHERE [City] = @City
GO;
Run Code Online (Sandbox Code Playgroud)
您现在可以使用此输出参数在其他地方传递值。
例如:
DECLARE @State int
EXEC [dbo].[GetStateFromCity] @City = 'Calgary', @State OUTPUT;
-- Do something with this value
SELECT @State;
-- Do something else
EXEC [dbo].[GetInsuranceCompanyByState] @State;
Run Code Online (Sandbox Code Playgroud)
总而言之,如果您只想为客户端应用程序返回一个值,则可能不需要输出参数。
但是,如果您想在 T-SQL 存储过程之间传递值,它们可能非常有用。
就其价值而言,我几乎不使用输出参数。
| 归档时间: |
|
| 查看次数: |
27852 次 |
| 最近记录: |