Ir para conteúdo

POWERED BY:

Arquivado

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

p4r_5

Insert em varias tabelas

Recommended Posts

Caros amigos.

Sou novato nesta de "SQL Server", porem uso o Access a bastante tempo e tenho uma dúvida que muitos ainda não conseguiram me responder claramente.

Como vocês devem saber, ao criarmos algumas tabelas no Access e seus relacionamentos, como por exemplo:

 

Produtos

Cod_Produt int not null identity

Nom_Produt varhar(50)

....

 

Vendas

Cod_Venda int not null itentity

Dat_Venda datetime

...

 

Itens

Cod_Venda int /* Campo da TAbela Vendas*/

Cod_Produto int not null /* CAmpo da Tabela Produtos*/

Quant_item int

...

 

Depois de criarmos os relacionamentos nao precisamos preencher os campos Autonumeração(Identity), se inserirmos a Venda 1 por exemplo e os Itens da Venda 1, o Access preenche o campo "Cod_Venda" da Tabela Itens automaticamente.

 

Alguem sabe como fazer este procedimento no SQL Server?

Seria um Trigger, uma procedure?

e as Transações como posso impor transações neste caso?

 

Agradeço por qualquer resposta. http://forum.imasters.com.br/public/style_emoticons/default/natal_sad.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quanto ao campo identity na chave primária das tabelas (Produtos e Vendas), o sql server vai acabar funcionando da mesma maneira. Basta definir as colunas com auto-incremento e no momento do insert o SGBD trata de determinar o valor correto de sequência (inclusive não é necessário que você faça referência as colunas com identity no comando insert).

 

Quanto as chaves estrangeiras na tabela Itens, você pode resolver de várias maneiras (controlando pela aplicação, via procedure, via trigger, ...), basta informar explicitamente qual o cod_venda e cod_produto referente aquele item, pois o sql server NÃO TEM recurso que preencha automaticamente as chaves estrangeiras de uma tabela (afinal ele não tem como saber sobre qual venda e produto refere-se aquele item).

 

Sobre transações (do ponto de vista de integridade das atualizações no BD), faça um pesquisa aqui mesmo no iMasters que com certeza você vais achar muito material (begin transaction, commit e rolback).

 

Ok ?!?

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.