Criando uma procedure - Inserção em varias tabelas (Pai - Filha)
Criando uma única procedure na qual passará informações cujo armazenamento deverá ser dividido entre as tabelas Cliente, Endereço e Telefone.
CreateProcedure dbo.stp_InsereCliente
@Codigo int,
@Nome VarChar(30),
@Endereco VarChar(30),
@Telefone VarChar(10)as
Begin
Set NoCountOn
Insert Into TabelaCliente(CodCliente, Nome)Values (@Codigo, @Nome)
InsertInto TabelaEnderecoCliente(CodCliente, Endereco)Values (@Codigo, @Endereco)
Insert Into TabelaTelefoneCliente(CodCliente, Telefone)Values (@Codigo, @Telefone)
SetNoCount Off
End
Exec stp_InsereCliente1, 'Pedro','São Paulo','2234-5678'
Exec stp_InsereCliente2, 'Tiago','Rio de Janeiro', '2245-1020'
Exec stp_InsereCliente3, 'João', 'Brasília','2298-9835'
Select* From TabelaCliente
Select* From TabelaEnderecoCliente
Select* From TabelaTelefoneCliente
ou então, podemos criar uma procedure de acordo com a lógida da trigger que estou utilizando logo abaixo:
CREATE TRIGGER trgSeqIDPessoa ON tblPessoas
INSTEAD OF INSERT
AS
BEGIN – Obter o maior ID (no caso do primeiro registro retornar zero) DECLARE @IDPessoa INT
SET @IDPessoa = ISNULL((SELECT MAX(IDPessoa) FROM tblPessoas),0)
SET @IDPessoa = @IDPessoa + 1
– Obter o nome da Pessoa
DECLARE @NomePessoa VARCHAR(50)
SET @NomePessoa = (SELECT NomePessoa FROM INSERTED)
– Gravar o registro na tabela de pessoas
INSERT INTO tblPessoas VALUES (@IDPessoa, @NomePessoa)
END
Att,
Leonardo Rocha.
Nenhum comentário:
Postar um comentário
Informações de contato
Nome:
E-mail:
Telefone: