将存储过程输出插入到另外两列

时间:2015-08-12 05:48:55

标签: sql stored-procedures sql-server-2008-r2

感谢您的帮助。

我正在使用SQL Server 2008 R2,我的要求是我需要将数据库中的存储过程输出插入到一个新表(不是临时表或虚拟表)中,其中包含2个额外的列而没有要添加的值。

2 个答案:

答案 0 :(得分:0)

这是一个例子;

create procedure proc_1
as begin
    SELECT name, database_id FROM sys.databases
end;
go

create table new_tbl (
    name varchar(150),
    id int,
    new_col1 int,
    new_col2 int
)
go

declare @tab table(
    name varchar(150),
    id int  
)
begin
    insert into @tab
    exec proc_1

    insert into new_tbl
    select name, id, 1, 2 from @tab;
end;
go

select * from new_tbl

OutPut:
master  1   1   2
tempdb  2   1   2
model   3   1   2
......

答案 1 :(得分:0)

创建一个存储过程,它将默认列作为输出。 例如:

CREATE Procedure proc1
AS 
BEGIN
    SELECT name, database_id,1 as Col1,2 as Col2
    FROM sys.databases
END;
go

上述SP的输出将提供所需的2个附加列。