Как объединить две базы данных в одну хранимую процедуру - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть SP, который должен работать на DB1 (использовать DB1), используя некоторые таблицы из этого DB1 и объединяясь с таблицами DB2.

Я получаю ошибку, если запускаю этот SP на DB1, но он хорошо работает, если я изменяю соединение с DB2.Проблема в том, что мне не разрешено создавать SP в этой DB2.

Конечно, в моих запросах есть префикс DB.

1 Ответ

0 голосов
/ 26 сентября 2018
CREATE PROCEDURE CheckForShipment

AS
BEGIN

Create DB1.TempTable 
(a,b,c,d)

insert into DB1.TempTable

select a,b,c,d 
from DB1.ShipmentData as aa 
left join
(select e,f,g,h
from  DB2.SysTable 
) as bb on aa.a = bb.e

-------------
declare 
@b  nvarchar(max),
@c  nvarchar(max),
@Sc  nvarchar(max),
@Me  nvarchar(max);

Declare ListOfShipments
For
Select b,c,d from DB1.TempTable 
Open ListOfShipments

FETCH NEXT FROM ListOfShipments INTO @b,@b,@d

WHILE @@FETCH_STATUS = 0  
BEGIN

    exec (@Sc)

    SET  @Me = something 

    FETCH NEXT FROM ListOfShipments

    END
    CLOSE ListOfShipments
    DEALLOCATE ListOfShipments
-----------------

---SEND EMAIL 

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = etc.
enter code here

Drop table DB1.TempTable 

End
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...