PROCEDURE
Boa noite.
Alguém saberia me dizer o que há de errado com essa proc?
1º - Ela deveria fazer uma comparação no banco (ai o uso do SELECT)
Caso não haja o registro no banco fazer parte 2 e 3
2º - Testar o parâmetro @CodMotivo
3º Fazer o INSERT.
O sistema roda sem retornar nenhum erro.
CREATE PROCEDURE [dbo].[sp_Devolucao_Extrato]
(
@DataDevolucao varchar(10),
@CIF Varchar (8000),
@CodMotivo Varchar(2)
)
AS
BEGIN
Declare @BuscaCIF Varchar (8000)
Declare @Motivo varchar(50)
select @BuscaCIF = ysnCodCif from CompactCedo.dbo.tbl_Arq_Devolucao_Cedo3 where ysnCodCif = @CIF
If @BuscaCIF <> @CIF
BEGIN
IF @CodMotivo = [ô]01[ô]
BEGIN
Set @Motivo = [ô]Mudou-se[ô]
END
ELSE If @CodMotivo = [ô]02[ô]
BEGIN
Set @Motivo = [ô]Endereço Insuficiente[ô]
END
INSERT INTO CompactCedo.dbo.tbl_Arq_Devolucao_Cedo3 (ysnCodCif,ysnCodMotivoDevolucao,strMotivoDevolucao,dtDataDevolucao)
Values(@CIF,@CodMotivo,@Motivo,@DataDevolucao)
END
END
Alguém saberia me dizer o que há de errado com essa proc?
1º - Ela deveria fazer uma comparação no banco (ai o uso do SELECT)
Caso não haja o registro no banco fazer parte 2 e 3
2º - Testar o parâmetro @CodMotivo
3º Fazer o INSERT.
O sistema roda sem retornar nenhum erro.
CREATE PROCEDURE [dbo].[sp_Devolucao_Extrato]
(
@DataDevolucao varchar(10),
@CIF Varchar (8000),
@CodMotivo Varchar(2)
)
AS
BEGIN
Declare @BuscaCIF Varchar (8000)
Declare @Motivo varchar(50)
select @BuscaCIF = ysnCodCif from CompactCedo.dbo.tbl_Arq_Devolucao_Cedo3 where ysnCodCif = @CIF
If @BuscaCIF <> @CIF
BEGIN
IF @CodMotivo = [ô]01[ô]
BEGIN
Set @Motivo = [ô]Mudou-se[ô]
END
ELSE If @CodMotivo = [ô]02[ô]
BEGIN
Set @Motivo = [ô]Endereço Insuficiente[ô]
END
INSERT INTO CompactCedo.dbo.tbl_Arq_Devolucao_Cedo3 (ysnCodCif,ysnCodMotivoDevolucao,strMotivoDevolucao,dtDataDevolucao)
Values(@CIF,@CodMotivo,@Motivo,@DataDevolucao)
END
END
acho que nao precisa de tanto BEGIN e END desse tanto seria somente 1
Faça algo assim
Paramentros
Declaracoes set
BEGIN TRANSACTION
IF
ELSE IF
END
Faça algo assim
Paramentros
Declaracoes set
BEGIN TRANSACTION
IF
ELSE IF
END
Quanto aos [Ô]Begin[Ô], beleza. Sei que não precisa mais eu gosto de ver tudo bem separado.
Sei também que não é este o problema, acho que a questão esta na consulta e depois comparação.
Pela estrutura que fiz deveria funcionar.
1º - Ele faz uma consulta e compara o resultado.
2º - Se forem diferentes entra no IF.
Sei também que não é este o problema, acho que a questão esta na consulta e depois comparação.
Pela estrutura que fiz deveria funcionar.
1º - Ele faz uma consulta e compara o resultado.
2º - Se forem diferentes entra no IF.
Resolvi.
Estava faltando uma comparação a mais,
-- E SE FOR NULL?
If @BuscaCIF is null or @BuscaCIF <> @CIF
-- Entra no IF
Mas valeu Aleda!
Vai um pontinho pela boa vontade!
Abraços!
Estava faltando uma comparação a mais,
-- E SE FOR NULL?
If @BuscaCIF is null or @BuscaCIF <> @CIF
-- Entra no IF
Mas valeu Aleda!
Vai um pontinho pela boa vontade!
Abraços!
Tópico encerrado , respostas não são mais permitidas