fantcha 0 Denunciar post Postado Dezembro 16, 2013 boa tarde! alguém sabe me dizer como faço uma stored procedure para editar e apagar dados em duas tabelas ligadas entre si? Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Dezembro 17, 2013 Quer saber como criar a stored procedure ou como executa-la pelo .net?Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
fantcha 0 Denunciar post Postado Dezembro 17, 2013 queria saber como fazer essa stored procedure. é que eu tenho uma tabela que tem como chave estrangeira uma outra tabela. eu queria saber como fazer essa SP para conseguir editar e apagar os dados nas duas tabelas. ex. tenho uma tabela matricula e outra aluno. ao cadastrar o aluno o id desse aluno fica como FK da tabela matricula. então eu queria editar ou deletar os dados das duas tabelas simultaneamente. Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Dezembro 17, 2013 CREATE OR REPLACE PROCEDURE NOMEDAPROC AS BEGIN /* CÓDIGO */ END; Mas você pode fazer isso por triggers. Compartilhar este post Link para o post Compartilhar em outros sites
fantcha 0 Denunciar post Postado Dezembro 17, 2013 é esse código que eu não sei como fazer. se fosse numa só tabela eu saberia mas não sei como fazer nas duas simultaneamente Compartilhar este post Link para o post Compartilhar em outros sites
Rafael Mitsunaka 11 Denunciar post Postado Dezembro 17, 2013 Se elas tem FK e tiverem com Delete Cascade e Edit Cascade, ao atualizar a tabela principal as outras são atualizadas. Caso não pode utilizar triggers Compartilhar este post Link para o post Compartilhar em outros sites
fantcha 0 Denunciar post Postado Dezembro 17, 2013 como é que faço então pode me dar um exemplo Compartilhar este post Link para o post Compartilhar em outros sites
Rafael Mitsunaka 11 Denunciar post Postado Dezembro 17, 2013 CREATE TRIGGER tg_Cliente_Excluir ON Cliente INSTEAD OF DELETE AS DELETE FROM Cliente WHERE ClienteID IN (SELECT ClienteID FROM deleted) DELETE FROM ClienteTelefone WHERE ClienteID IN (SELECT ClienteID FROM deleted) O exemplo acima irá remover todos os telefone(s) do(s) cliente(s) da tabela ‘ClienteTelefone’ antes de remover todos os clientes (Cliente) e esta TRIGGER está sendo aplicada a tabela ‘Cliente’. Repare que está sendo utilizado a instrução INSTEAD OF que em vez excluir (DELETE) o registro pela ação irá excluir ao final da TRIGGER. Cria uma procedure chamando sua trigger e sucesso! Compartilhar este post Link para o post Compartilhar em outros sites
fantcha 0 Denunciar post Postado Dezembro 17, 2013 o unico problema que eu não sei como usar o TRIGGER sempre usei o SP. Não tem um exemplo de como fazer com SP? Compartilhar este post Link para o post Compartilhar em outros sites
Rafael Mitsunaka 11 Denunciar post Postado Dezembro 18, 2013 Se não quiser usar Trigger, vai ter que criar na sua SP um comando pra deletar as 2 tabelas. Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Dezembro 18, 2013 O trigger é um objeto que você cria e deixa lá, você não precisa chamar como um método como seri ano caso de uma SP. Você cria um trigger no evento UPDATE da tabela pai e o trigger automaticamente vai se ativar e realizar o código escrito nele. http://sqlcomoumtodo.wordpress.com/2007/10/17/criando-trigger-em-sql/ http://www.macoratti.net/sql_trig.htm http://www.devmedia.com.br/desenvolvendo-triggers-em-sql-server-oracle-firebird-e-postgres/5625 Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Dezembro 23, 2013 Qual banco de dados esta usando? Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
fantcha 0 Denunciar post Postado Janeiro 15, 2014 consegui resolver as stored procedures para editar fiz assim ALTER PROCEDURE [dbo].[EDITAR_ALUNO] ( --tabela aluno @id_aluno int ,@nomeAluno varchar (100) --tabela matricula ,@numMatricula int ) ASUPDATE alunoSET nomeAluno = @nomeAluno where id_aluno = @id_aluno update matricula set numMatricula = @numMatricula where id_aluno = @id_aluno e o SP para apagar ALTER PROCEDURE [dbo].[APAGA_ALUNO] ( @id_aluno int )ASdelete from matriculawhere id_aluno = @id_aluno delete FROM alunowhere id_aluno = @id_aluno Compartilhar este post Link para o post Compartilhar em outros sites