给出如下所示的存储过程:
CREATE PROCEDURE [dbo].[GetBusinessUnitSysNameAndGroupNames]
@ModelAfter varchar(100),
@BusinessUnitSystemName varchar(100) OUT,
@GroupsName varchar(4000) OUT
AS
BEGIN
if (@ModelAfter = 'Corporate')
BEGIN
SET @GroupsName = 'Admins'
SET @BusinessUnitSystemName = 'AcmeOutdoors'
END
else if (@ModelAfter = 'Retailers')
BEGIN
SET @GroupsName = 'Sellers'
SET @BusinessUnitSystemName = 'AcmeShoppers'
END
END
当我从SQL Studio命令行运行时:
EXEC [dbo].[GetBusinessUnitSysNameAndGroupNames] '~ModelAfter~', 'acmeoutdoors', 'admins'
我只是在Command(s) completed successfully.
这样的消息面板中得到一个结果但是我希望看到实际结果,而不仅仅是成功消息。下面显示的东西(这不起作用,只是我的想法)。
DECLARE @Result varchar(max)
SET @Result = EXEC [dbo].[GetBusinessUnitSysNameAndGroupNames] '~ModelAfter~', 'acmeoutdoors', 'admins'
PRINT @Result
答案 0 :(得分:4)
使用OUTPUT参数返回数据
如果为过程中的参数指定OUTPUT关键字 定义,存储过程可以返回当前值 存储过程退出时调用程序的参数。至 将参数的值保存在可以在。中使用的变量中 调用程序时,调用程序必须使用OUTPUT关键字 执行存储过程。
DECLARE @Result1 varchar(max), @Result2, varchar(max)
EXEC [dbo].[GetBusinessUnitSysNameAndGroupNames] 'Corporate', @Result1 OUT, @Result2 OUT
PRINT @Result1
PRINT @Result2