感谢您的帮助。
我正在使用SQL Server 2008 R2,我的要求是我需要将数据库中的存储过程输出插入到一个新表(不是临时表或虚拟表)中,其中包含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个附加列。