Ir para conteúdo

POWERED BY:

Arquivado

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

p4r_5

Um INSERT difícil…

Recommended Posts

Tenho um DB com as seguintes tabelas:

 

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 not null /* O mesmo campo da Tabela Vendas*/

Cod_Produt int not null /* O mesmo campo da Tabela Produtos*/

Quant_item int not null ...

 

Eu queria inserir o campo [itens].[Cod_Venda] da "venda" que acabei de criar com um INSERT. Exemplo:

 

INSERT INTO VENDAS (Dat_Venda, ... ) VALUES (dataqualquer, .... )

...

INSERT INTO ITENS (Cod_Venda, Cod_Produt, Quant_Item, ...) VALUES (??????????, produtox, quantidadey, ...)

 

Sendo este uma coluna Identity, seria possível via trigger ou procedure?

Existe uma maneira no SQL sem usar outra Linguagem.

 

Caso exista a possibilidade, como fazer isso de maneira que nao crie ambiguidade

no caso de dois ou mais usuarios estejam inserindo vendas ao mesmo tempo?

 

Seria correto criar transações neste caso?

Alguem tem um modelo de algo parecido?

 

Desculpe a ignorância, pois estou entando usar o SQL e deixar de lado os outros DB com DBF, mdb...

 

Agradeceria por qualquer resposta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sendo este uma coluna Identity, seria possível via trigger ou procedure?

Existe uma maneira no SQL sem usar outra Linguagem.

 

Caso exista a possibilidade, como fazer isso de maneira que nao crie ambiguidade

no caso de dois ou mais usuarios estejam inserindo vendas ao mesmo tempo?

sim é possível, tem essas opções:

select IDENT_CURRENT('nomedatabela') --retorna o último Id inserido em uma determinada tabela, indepentende de conexão, escopo, etc, vai na tabela e verifica qual o último id que foi inserido

 

select @@IDENTITY --retorna o ultimo ID inserido na conexão atual, independente de tabela

 

select SCOPE_IDENTITY() --retorna o ultimo ID inserido, independente de tabela no mesmo escopo (stored proc, trigger, função) --> ver mais detalhes no books on-line

 

artigo sobre procedures: http://www.imasters.com.br/artigo/223/sql_...red_procedures/

artigo sobre triggers: http://www.imasters.com.br/artigo/228/sql_...ras_de_negocio/

 

Seria correto criar transações neste caso?

Alguem tem um modelo de algo parecido?

seria correto e essencial, veja este artigo: http://www.imasters.com.br/artigo/224/sql_..._no_sql_server/

 

 

link para a seção de sql server no portal imasters: http://www.imasters.com.br/secao/sql_server, aqui você tem inúmeros artigos que podem ajudar e muito

 

 

bons estudos

http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif

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.