Jump to content
Sign in to follow this  
Damon4hire

Sql server stored procedures

Recommended Posts

Damon4hire

boas pessoal

precisava de uma ajuda a criar um stored procedure que me permita introduzir dados

em 2 tabelas diferentes. O problema é que os dados de uma tabela vão depender dos

dados introduzidos na outra. As tabelas são estas:

Compras

-----------

numfactura (identity)

data

idfornecedor

ComprasDetalhes

----------------------

id (identity)

numfactura

idproduto

quantidade

A ideia é ao introduzir uma compra, um numfactura é gerado,

e com esse numero gerado posso então introduzir os dados na outra tabela.

Só não sei é como prever o numero gerado ou quantos produtos podem estar introduzidos

na mesma factura.

Uma ajuda pfv. :)

Share this post


Link to post
Share on other sites
Damon4hire

Tks, ajudou.

Mas ainda tenho um problema.

Fiz isto:

create procedure novaCompra @idfornecedor int as

declare @numfactura int

insert into Compras(idfornecedor)

values(@idfornecedor)

return set @numfactura = @@IDENTITY

para testar fiz isto:

declare @number int

exec @number = novaCompra 2

insert into ComprasDetalhes(numfacturaentrada, iddvd, quantidade)

values(@number, 1, 1)

e dá-me isto:

(1 row(s) affected)

(1 row(s) affected)

Msg 547, Level 16, State 0, Line 3

The INSERT statement conflicted with the FOREIGN KEY constraint "FK_ComprasDetalhes_Compras". The conflict occurred in database "Loja", table "dbo.Compras", column 'numfacturaentrada'.

The statement has been terminated.

Não percebo..

Share this post


Link to post
Share on other sites
TheDark

Eu diria que a coluna ComprasDetalhes.numfactura está a referenciar a tabela Entradas em vez da tabela Compras.


Desaparecido.

Share this post


Link to post
Share on other sites
Damon4hire

lol ya eu mudei o nome da tabela pa melhor entendimento ao explicar o conceito, e esqueci-me dakele detalhe  :) .

mas é assim como está agora

Share this post


Link to post
Share on other sites
TheDark

Não sei bem o que faz o return set ... mas nos testes que fiz o resultado era sempre 0.

Substitui por return @@IDENTITY


Desaparecido.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.