Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

FabianoSouza

SP executando delete em tab de outro bd

Recommended Posts

Tenho os bd A (que é o banco em que estou logado) e bd B (que é o banco em que está a tab que quero afetar).

 

Quero rodar uma sp (com instrução delete) no banco A, que delete registros numa tabela no banco B.

 

Essa estrutura de SP funciona para tabelas que estejam no mesmo bd em que estou logado.

Porém, nessa adaptação que estou tentando criar, está ocorrendo erro.
Creio que seja por estar tentando afetar uma tabela localizada num bd diferente do qual estou logado

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
BEGIN TRANSACTION
DECLARE @respostaSP VARCHAR(200)
SET @respostaSP = ''

--cria tabela temporária
SELECT Sel.Codigo AS PK 
INTO #tabTempDel  
FROM bancoB.dbo.tabBancoB AS Sel 
INNER JOIN 
dbo.Split(@stringItens, ',') ON Sel.Codigo = Data
WHERE  
Sel.CodProprietario = @codUsuario

--delete item principal
BEGIN
DELETE 
tabBancoB 
FROM 
bancoB.dbo.tabBancoB AS V INNER JOIN #tabTempDel AS delItemPai 
ON 
V.Codigo = delItemPai.PK 

IF(@@error = 1)
BEGIN
ROLLBACK TRANSACTION 
SET @respostaSP ='0' 
RETURN
END
SET @respostaSP ='1' 
SELECT @respostaSP AS resposta
COMMIT TRANSACTION
END

O erro é:

 

Mensagem 208, Nível 16, Estado 1, Procedimento del_Vagas, Linha 24
Nome de objeto 'tabBancoB' inválido.
Mensagem 266, Nível 16, Estado 2, Procedimento del_Vagas, Linha 24
O número de transações após EXECUTE indica um número incompatível das instruções BEGIN e COMMIT. Número anterior = 6, número atual = 7.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ops, encontrei o erro

BEGIN
DELETE 
V -- aqui está o erro, seria V no lugar de tabBancoB
FROM 
bancoB.dbo.tabBancoB AS V INNER JOIN #tabTempDel AS delItemPai 
ON 
V.Codigo = delItemPai.PK 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.