A数据库里面有个存储过程,多表联查的,没有return的,只是把数据查询出来了,我现在的想法就是 在B数据库中执行A数据库中的存储过程,就把A数据库中的数据查询出来了,怎么插入到B数据库中的一张表中
--A 数据库中的存储过程
create proc a
as
begin
 select * from table1 inner join table2 on table.id=table2.id
end--B 数据库中的存储过程
create proc b
as
begin
 exec a --a存储过程简单了点,意思差不多,执行a这里只是查询结果,想就是把查询到的结果怎么插入到B数据库中的另一个表里面
 insert into b_table(字段名)  --这里就是要插入执行a存储的查询结果
end
除了零时表外,看有没有别的办法

解决方案 »

  1.   

    A里面的存储过程通用的(多表联查),现在另外一个数据库(B)需要调用A的存储过程,得到查询结果,插入到B数据库中的另一张表里面去
      

  2.   

    在B数据库中加个服务器端链接(如果不是一个服务器),要不就直接exec dbName..procedureName
      

  3.   

    DATABASE A:
    CREATE FUNCTION fun_a()
    RETURNS TABLE
    AS
    BEGIN
         SELECT * FROM .....
    ENDDATABASE B:
    CREATE PROC B
    ()
    AS
    BEGIN
     INSERT INTO TABLENAME SELECT DATABASEA.DBO.fun_a();
    END
      

  4.   

    --B数据库的存储过程EXEC [a] @START_DATE, @END_DATE; --a存储过程里面有个操作就是把查询的数据保存在A数据库中的一个零时表中去了(eRpt_ad_invoice)

    --Save to report table
    INSERT INTO dbo.eRpt_DailyADInvoice (LogID, Invoice, Bkgref, Seq, Typecode, Login, Staff, City, Pax1, Arrival, Departure, Curr, Amount, BookingDate, InvoiceDate)
    SELECT @TargetLogID, Invoice, Bkgref, Seq, Typecode, Login, Staff, City, Pax1, Arrival, Departure, Curr, Amount, BookingDate, InvoiceDate
    FROM [dbo].eRpt_ad_invoice;
    【eRpt_ad_invoice】是A数据中的一个零时表,这样就可以解决问题!但是想现在不需要零时表怎么解决!
      

  5.   

    create proc b
    as 
    insert into b_table
    exec A数据库.a 
      

  6.   

    试试1L的方法
    create function Function_ReturnTempTable
    ()
    returns @temp ()
    insert into @temp select ...