Sql 存储过程返回值
我有这样一个存储过程:Sql 存储过程返回值,sql,tsql,stored-procedures,Sql,Tsql,Stored Procedures,我有这样一个存储过程: Select @totalMoney*@bonusPercent/100 如何从过程返回值并将其分配给变量? 我的意思是: SET @myVarible = EXEC MyStoredProcedure @param1, @param1; 在存储过程中,只需使用 RETURN @X @X必须是整数数据类型 返回代码通常用于状态代码。输出参数可能是更好的选择,具体取决于您正在执行的操作 将参数声明为OUTPUT CREATE PROCEDURE dbo.MySto
Select @totalMoney*@bonusPercent/100
如何从过程返回值并将其分配给变量?
我的意思是:
SET @myVarible = EXEC MyStoredProcedure @param1, @param1;
在存储过程中,只需使用
RETURN @X
@X
必须是整数数据类型
返回代码通常用于状态代码。输出参数可能是更好的选择,具体取决于您正在执行的操作
将参数声明为OUTPUT
CREATE PROCEDURE dbo.MyStoredProcedure
@param1 INT,
@myVarible DECIMAL(10,4) OUTPUT
AS
...
并称之为
EXEC dbo.MyStoredProcedure @param1, @myVarible OUTPUT;
使用
输出
变量,返回仅适用于整数
范例
create procedure prTest @id int, @id2 decimal(20,10) output
as
select @id2 = @id + 1
go
现在就这样说吧
declare @Test decimal(20,10)
exec prTest 5,@Test output
select @Test
输出6.00000000为什么不使用用户定义的函数而不是存储过程?(很抱歉,手边没有SQL Server,因此我无法编写和测试示例。)更易于在其他存储过程和函数中使用。很难从客户那里打电话,所以这是一种权衡。如果其他t-sql代码和客户机都需要访问,我将创建用户定义的函数,然后为客户机创建一个存储过程包装器。