Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou na seguinte situação:
Tenho o seguinte XML q vem da aplicação:
>
<Entradas>
<Entrada observacao="dasdasdasd" valor="1000">
<Bens>
<Outros>
<Item bem="Outros" idBem="1" descricao="dasdasdasdasdasd" valor="424.234,00"/>
</Outros>
<Veiculos>
<Item bem="Veículo" idBem="2" marca="ihiuh" modelo="iuhui" />
</Veiculos>
<Imoveis>
<Item bem="Imóvel" idBem="3" proprietario="fsdfsdfsdfsdf" localizacao="sxdfasdfsdfsdf" />
<Item bem="Imóvel" idBem="3" proprietario="fsdfsdfsdfsdf" localizacao="sxdfasdfsdfsdf" />
</Imoveis>
</Bens>
</Entrada>
</Entradas>
dentro da minha procedure separo essa estrutura em 4 tabelas diferentes:
#EscopoEntrada
#EscopoOutros
#EscopoVeiculos
#EscopoImoveis
vou dar o exemplo de como montei uma dessas tabelas, esse exemplo serve pras outras...
Exec sp_xml_preparedocument @idVei OUTPUT, @ds_XML_Entrada
Select bem, idBem, marca, modelo
Into #EscopoVeiculos
From
OpenXml (@idVei, '/Entradas/Entrada/Bens/Veiculos/Item')
With(
bem Varchar(50),
idBem Int,
marca Varchar(50),
modelo Varchar(50)
)
Exec sp_xml_removedocument @idVei****
Bem{
idBem IDENTITY
dtcadastro
}
Bem_Veiculo{
idBem
marca
modelo
etc...
}
Bem_Imovel{
idBem
nmproprietario
dslocalizacao
etc...
}
Bem_Outros{
idBem
dsoutros
etc...
}
reparem na estrutura...
o meu problema é como eu vou recuperar o idBem q é gerado na tabela Bem em cada insert
pra depois utiliza-lo na inserção das tabelas filhas ?
por exemplo:
Insert Bem (dt_Cadastramento)
Select GetDate() From #EscopoOutros
como eu iria recuperar o idBem gerado na tabela Bem pra usar nas filhas, já q minha tabela temporaria poderia ter N registros ?
sacaram ? é um insert em "massa", nuam sei como eu poderia utilizar o @@identity para recuperar esses IDs, se alguém tiver alguma idéia, algum exemplo agradeço...
vlw galera!
Carregando comentários...