Jump to content

Sql server stored procedures


Damon4hire
 Share

Recommended Posts

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. 🙂

Link to comment
Share on other sites

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..

Link to comment
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
 Share

×
×
  • 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.