INSERT EM 2 TABELAS AO MESMO TEMPO

POCE1DON 28/07/2017 01:14:40
#475480
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 ;)
JABA 28/07/2017 01:59:21
#475481
Resposta escolhida
POCE1DON 28/07/2017 02:25:26
#475482
Não é nenhuma daquelas infos
JABA 28/07/2017 02:51:08
#475484
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/

POCE1DON 28/07/2017 03:26:05
#475485
Deu certo Jaba

Obrigado amigo!
Tópico encerrado , respostas não são mais permitidas