INSERT EM 2 TABELAS AO MESMO TEMPO

 Tópico anterior Próximo tópico Novo tópico

INSERT EM 2 TABELAS AO MESMO TEMPO

SQL / DATABASE

 Compartilhe  Compartilhe  Compartilhe
#475480 - 28/07/2017 01:14:40

POCE1DON
GOIANIA
Cadast. em:Julho/2010


Última edição em 28/07/2017 01:29:51 por POCE1DON

O BD é MS Access.

Tenho 2 tabelas como exemplo: tblCliente e tblTelefone

Preciso fazer o INSERT nas 2 tabelas, e armazenar em tblTelefone o código de cadastro que acabou de ser gerado no INSERT da tblCliente.

as colunas em tblCliente são: IDCLIENTE (auto increment), NOME (string), SEXO (string)
em tbTelefone são: IDCLIENTE (long), NUMERO (string)

O INSERT que estou querendo fazer, seria mais ou menos assim:


INSERT INTO tblCliente (nome, sexo) VALUES ('rafael', 'm')
INSERT INTO tblTelefone (idcliente, numero) VALUES ([codigo do cliente que foi gerado no primeiro INSERT], '0000-0000')


São 2 INSERT que precisam ser feitos ao mesmo tempo, mas no INSERT para criar o registro em tblTelefone, já precisa
do código gerado no novo registro quando fez o INSERT em tblCliente

Então minha dúvida é:

É possível fazer algo como um "JOIN" nesse INSERT para que o 'código' gerado no INSERT da tblCliente já
seja retornado e inserido também na tblTelefone ao mesmo tempo?

Nas minhas buscas por essa informação, e pelo o que entendi, encontrei algo parecido feito em MySQL de nome 'LAST_INSERT_ID()',
então queria saber se o Access também tem algo parecido. Se vc usa MySQL em seus projetos, deve conhecer essa função.

Vlw ;)



Resposta escolhida #475481 - 28/07/2017 01:59:21

JABA
CABO FRIO
Cadast. em:Agosto/2005


Veja isso, acredito que ajude:

support.microsoft.com/pt-br/help/815629/how-to-retrieve-the-identity-value-while-inserting-records-into-access

_______________________________________________________________________________________________

Se a alma ou espírito são imateriais, como eles fazem para se localizarem quando o corpo está em movimento?



#475482 - 28/07/2017 02:25:26

POCE1DON
GOIANIA
Cadast. em:Julho/2010


Não é nenhuma daquelas infos



#475484 - 28/07/2017 02:51:08

JABA
CABO FRIO
Cadast. em:Agosto/2005


Última edição em 28/07/2017 03:12:11 por JABA

Veja a parte que contém o "SELECT @@Identity". Isso aí serve para trazer a id no ms-access.

Você vai ter que fazer isso em dois passos. Primeiro você inclui o registro, captura a sua id, depois utiliza-a pra criar o registro na outra tabela. Só lembrando que se você não quiser ter problemas de incompatibilidade de dados devido a algum erro no meio do caminho, use uma transação para tratar do caso. Ou seja, se der problema em qualquer uma das inserções, dê um rollback.

Aqui tem mais um exemplo para capturar a id:

blogs.msdn.microsoft.com/spike/2009/12/02/getting-autonumber-from-access-via-select-identity-needs-to-be-done-in-same-connection-as-the-insert/



_______________________________________________________________________________________________

Se a alma ou espírito são imateriais, como eles fazem para se localizarem quando o corpo está em movimento?



#475485 - 28/07/2017 03:26:05

POCE1DON
GOIANIA
Cadast. em:Julho/2010


Deu certo Jaba

Obrigado amigo!



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por POCE1DON em 28/07/2017 03:26:21