Inserção de dados em tabelas

SQL Server

16/10/2013

GOSTARIA DE AJUDA PARA MONTAR O CÓDIGO PARA QUE AO FAZER UM INSERT NA TABELA ESTOQUE ELA ATUALIZE E INSIRA NA TABELA PRODUTO.
USEI AS TABELAS ABAIXO.

CREATE TABLE ESTOQUE
(COD_ESTOQUE NUMBER(4) CONSTRAINT PK_ESTOQUE PRIMARY KEY,
NOME_PRODUTO VARCHAR2(30) NOT NULL,
QTDE_MINIMA NUMBER(11) NOT NULL,
QTDE_ESTOQUE NUMBER(11) NOT NULL
);

CREATE TABLE PRODUTO
(COD_PRODUTO NUMBER(4) CONSTRAINT PK_PRODUTO PRIMARY KEY,
NOME_PRODUTO VARCHAR2(30) NOT NULL,
COD_FORNECEDOR NUMBER(4) REFERENCES FORNECEDOR(COD_FORNECEDOR),
QTDE_MINIMO_PRODUTO NUMBER(4) NOT NULL
);
Francielle Oliveira

Francielle Oliveira

Curtidas 0

Respostas

Alex Lekao

Alex Lekao

16/10/2013

Ola Francielle, boa tarde!!!

Desculpe, mas esses codigos sao apenas testes para conhecimento seu e pratica com sql ou esta montando alguma coisa e deseja fazer uso?

Caso seja especificamente para conhecimento, acredito que vc podera utilizar uma trigguer com o after insert ele de um insert na outra tabela.

Caso seja para producao e utilizacao disso mais efetiva, digamos assim, vc precisa analisar melhor a sua modelagem para fazer as insercoes, pq as suas tabela vao apresentar redundancias.

Espero que ajude.

Abraco.

Alex - Lekao
GOSTEI 0
Alex Lekao

Alex Lekao

16/10/2013

Oi Franciele,

da uma olhada neste link

http://pt.wikibooks.org/wiki/PostgreSQL_Pr%C3%A1tico/Fun%C3%A7%C3%B5es_Definidas_pelo_Usu%C3%A1rio_e_Triggers/Triggers

fala sobre postgree, mas acho que deve dar uma ajuda para ter uma nocao das trigguers.
GOSTEI 0
Francielle Oliveira

Francielle Oliveira

16/10/2013

São para conhecimento e prática, gosto de programação mais tenho muita dificuldade com banco de dados, algumas coisas consigo e outras tenho mais dificuldade como este caso que estou citando acima.
Vou tentar fazer a trigger.
GOSTEI 0
Jefferson Santos

Jefferson Santos

16/10/2013

Francielle,
Você sabe criar uma procedure? Uma simples procedure resolve seu problema.
GOSTEI 0
Francielle Oliveira

Francielle Oliveira

16/10/2013

Na verdade não mais posso tentar fazer uma para verificar se resolve.
Teria que fazer um update dentro da procedure?
GOSTEI 0
Jefferson Santos

Jefferson Santos

16/10/2013

Segue um modelo de procedure simples:

CREATE PROCEDURE sp_AlteraCliente_Update						-- Procedure de Alteração TbCliente
(       @IdCliente	int
,		@sNome    			varchar(50) = NULL
,       @sApelido           varchar(30) = NULL
,		@sCPF				varchar(15) = NULL
,		@sContato          	VARCHAR(15) = NULL
,		@sContato2          VARCHAR(15) = NULL
,		@sEmail				VARCHAR(50) = NULL
,       @datNasc datetime 				= NULL
) AS

UPDATE dbo.tbCliente
SET sNome = IsNull(@sNome, sNome)
  , sApelido  = IsNull(@sApelido , sApelido )
  , sCPF = IsNull(@sCPF, sCPF)
  , sContato = IsNull(@sContato, sContato)
  , sContato2 = IsNull(@sContato2, sContato2)
  , sEmail = IsNull (@sEmail, sEmail)
  , datNasc = IsNull(@datNasc, datNasc)
WHERE IdCliente = @IdCliente


Tente edita-la para seu uso.
Lembrando de fazer o update nas duas tabelas, depois de pronta só rodar a procedure.

exec sp_AlteraFuncionario_Update '1', 'Jeferson Coutinho','Coutinho','00100305911','02126516487','02172188188', 'jeffersoncoutinho@terra.com.br', '19881027' 		-- Modo de execução de Procedure
GOSTEI 0
Alex Lekao

Alex Lekao

16/10/2013

São para conhecimento e prática, gosto de programação mais tenho muita dificuldade com banco de dados, algumas coisas consigo e outras tenho mais dificuldade como este caso que estou citando acima.
Vou tentar fazer a trigger.


Legal Francielle, eh bom fazer bastante teste mesmo para fica bem aprendido(nem sei se existi "aprendido"... rssrrsr).

Trigguers e Procedures sao muito utilizadas para atualizacao de dados etc.

Vale muito a pena aprender. rsrsr
GOSTEI 0
Alex Lekao

Alex Lekao

16/10/2013

Oi Jefferson,

Para essa necessidade que ela estava mencionando nao seria melhor o uso da trigguer? que ela nao necessitaria de uma chamada, certo?

Nao tenho tanta pratica assim com essas coisas, nem sou programador... rsrsr
GOSTEI 0
Jefferson Santos

Jefferson Santos

16/10/2013

A trigger também é uma ótima opção, sem problemas.
Francielle em caso de duvidas em criação da trigger me avise que te auxilio.

Alex - FLWS
GOSTEI 0
Francielle Oliveira

Francielle Oliveira

16/10/2013

Fiz da seguinte maneira, estou no caminho certo?

CREATE TRIGGER atualiza_tabela ON produto
FOR INSERT
AS
Begin
Insert into estoque (Cod_estoque,Nome_Produto,Qtde_Minima,Qtde_Estoque) values (´1,'Tesoura',1, 100´);
end;

GOSTEI 0
Alex Lekao

Alex Lekao

16/10/2013

acredito que sim.

so que no insert talvez seja interessante vc colocar um select referente ao que vc acabou de inserir, se eh isto que vc esta intencionando.
GOSTEI 0
Jefferson Santos

Jefferson Santos

16/10/2013

Se lhe retornar o que você quer...
Está correto.
rs

GOSTEI 0
Francielle Oliveira

Francielle Oliveira

16/10/2013

Vlw pessoal pela ajuda consegui...rsrs
GOSTEI 0
Jefferson Santos

Jefferson Santos

16/10/2013

Paciência e perseverança tem o efeito mágico de fazer as dificuldades desaparecerem e os obstáculos sumirem.
GOSTEI 0
Alex Lekao

Alex Lekao

16/10/2013

legal...

Parabens!!!

Continue firme e forte!!!!

Gostei da "filosofada"... rssr
GOSTEI 0
José

José

16/10/2013

Já que a duvida inicial foi sanada, estou marcando o tópico como concluído.
Fiquem a vontade para abrir novos tópicos.
GOSTEI 0
POSTAR