我有存储过程,它使用了几个函数,而这些函数正在比较一些数据。 例如:
功能一:
if @x is not null
begin
if @x > @y
return 'y cannot be less than x'
并且在存储过程中我声明了一些我们的X和Y的变量。
然后我开始新的交易,例如:
begin tran test;
exec [dbo].[My_stored_procedure] # stored prodecure which using function I wrote above.
'some_value','some_value' # our X and Y
rollback test;
并且一切正常,当满足函数(x> y)的条件时,我们可以看到返回的消息“'y不能小于x'”。我希望该消息保存在变量或表中,但不需要编辑存储过程/函数。我尝试过类似的东西:
begin tran test;
CREATE TABLE stored_test
(
result nvarchar(2000)
)
INSERT INTO stored_test(result) exec [dbo].[My_stored_procedure]
'some_value','some_value'
rollback test;
它有效,但“结果”是emtpy。我希望它包含函数的返回消息,它在存储过程中使用。
答案 0 :(得分:0)
您必须修改存储过程以从中获取任何返回值。您需要在存储过程中声明一个输出变量,然后将该消息存储在变量中,并在最后一个调用过程中执行:
EXECUTE Sales.uspGetEmployeeSalesYTD @SalesYTD = @SalesYTDBySalesPerson OUTPUT