0

我想在存储过程中显示 2 个 1 列的表作为我的输出

定义为

create procedure p1
        @name     varchar(20) OUTPUT,
        @company  varchar(20) OUTPUT
As

BEGIN
      select @name = t1.name from table1 t1;

      select @company = t2.company from table2; 

END

执行为

declare @name varchar(20), @company varchar(20)

exec dbo.p1 @name = @name, @company = @company

select @name as 'Name', @company as 'Company'

但是,这仅显示一行。我究竟做错了什么?

4

1 回答 1

2

如果要将这些值显示为 1 列、2 行 - 使用 UNION:

select @name as 'Name'
UNION ALL
select @company

请注意,两个值都将显示在相同的列名称“名称”下

如果您还想显示字符串“名称”和“公司”,则必须确保另一列的行顺序:

select 'Name' as Info, 0 as Sort
UNION ALL
select @name, 1
UNION ALL
select 'Company', 2
UNION ALL
select @company, 3
Order by Sort
于 2013-07-31T18:02:53.263 回答