O problema agora é o seguinte, ela vai inserir em 2 tabelas, primeiro ela insere na TB_PESSOAP onde insere os dados normais com o campo CD_PESSOA identity.
Segundo, ela verifica se o campo (DS_TIPO_PESSOA) é igual a ' 1 ' ou ' 2 ' ( ele passa por uma constraint check que só permite esses dois valores) se for igual a 1 , ela vai inserir na tabela TB_PESSOAF, se for igual a 2 ela insere na TB_PESSOAJ.
Mas quando eu vo compilar isso, ele me retorna dois erros := 'Incorrect sintax near BEGIN' e o outro 'Incorrect sintax near ELSE' .
Eu ainda me perco um pouco com Begin´s e End´s .
Sera que alguém pode falar para mim onde eu estou errando ?? Creio que a logica que esta feira esteja certa, só me falta arrumas esses ' INCORRECTS' mesmo. HAHAHA
Pergunta
Felipe - Iniciante-Delphi
Fulvio, se for voce que le esse tópico, essa procedure nova eu to montando na mesma logica da ultima que você havia me ensinado, ok ?
Bom, primeiramente, segue ela :
CREATE PROCEDURE SP_INSEREDADOS_1
-- DECLARAÇÃO DAS VARIAVEIS
@CODIGO int = null,
@NOME varchar(200),
@EMAIL varchar(200),
@RG varchar(9),
@TELEFONE numeric(14),
@TIPO numeric(1),
@CPF integer,
@NASCIMENTO numeric(11),
@SEXO char(1),
@PROFISSAO varchar(200),
@CNPJ numeric(14),
@NOMEEMP varchar(200),
@INSCRICAO varchar(30),
@ORDEM char(1)
AS
IF (@ORDEM) = 'i' -- insere registros nas tabelas.
BEGIN
IF EXISTS (SELECT DS_RG FROM TB_CADASTROP WHERE DS_RG = @RG)
BEGIN
SELECT 'RG já CONSTA NO CADASTRO, NÃO PODENDO SER DUPLICADO'
RETURN
END
ELSE
BEGIN
BEGIN TRANSACTION
INSERT INTO TB_CADASTROP (DS_NOME, DS_EMAIL, DS_RG, NR_TELEFONE, DS_TIPO) VALUES (@NOME, @EMAIL, @RG, @TELEFONE, @TIPO)
IF ( SELECT DS_TIPO = 1)
BEGIN
SET @CODIGO = (SELECT MAX(CD_PESSOA) FROM TB_PESSOAP)
INSERT INTO TB_PESSOAF (CD_PESSOA, NR_CPF, DT_NASCIMENTO, TP_SEXO, TP_PROFISSAO) VALUES (@CODIGO, @CPF, @NASCIMENTO, @SEXO, @PROFISSAO)
END
ELSE
BEGIN
SET @CODIGO = (SELECT MAX(CD_PESSOA) FROM TB_PESSOAP)
INSERT INTO TB_PESSOAJ (CD_PESSOA, NR_CNPJ, DS_NOME_EMP, DS_INSCRICAO_EST) VALUES (@CODIGO, @CNPJ, @NOMEEMP, @INSCRICAO)
END
COMMIT TRANSACTION
END
END
O problema agora é o seguinte, ela vai inserir em 2 tabelas, primeiro ela insere na TB_PESSOAP onde insere os dados normais com o campo CD_PESSOA identity.
Segundo, ela verifica se o campo (DS_TIPO_PESSOA) é igual a ' 1 ' ou ' 2 ' ( ele passa por uma constraint check que só permite esses dois valores) se for igual a 1 , ela vai inserir na tabela TB_PESSOAF, se for igual a 2 ela insere na TB_PESSOAJ.
Mas quando eu vo compilar isso, ele me retorna dois erros := 'Incorrect sintax near BEGIN' e o outro 'Incorrect sintax near ELSE' .
Eu ainda me perco um pouco com Begin´s e End´s .
Sera que alguém pode falar para mim onde eu estou errando ?? Creio que a logica que esta feira esteja certa, só me falta arrumas esses ' INCORRECTS' mesmo. HAHAHA
Obrigado galera. =]
Abraços ;
Link para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.