CRIAR STORAGE PROCEDURE COM ERRO
alguem pode me dizer como fazer esta storage procedure, dá a seguinte mensagem :
Mensagem 102, NÃvel 15, Estado 1, Procedimento Sp_AtualizaDiasAtraso, Linha 21
Sintaxe incorreta próxima a [ô]NULL[ô].
CREATE PROCEDURE [dbo].[Sp_AtualizaDiasAtraso]
@PARAMETRO1 VARCHAR(10),
@PARAMETRO2 VARCHAR(10),
@BANCO INTEGER
AS
BEGIN
UPDATE TB_TITULO SET NR_DIAS_ATRASO = DATEDIFF(Day,@PARAMETRO1, @PARAMETRO2)
FROM TB_TITULO
INNER JOIN TB_CONTRATO ON
TB_TITULO.ID_CONTRATO = TB_CONTRATO.ID_CONTRATO AND
TB_TITULO.CD_CLIENTE = TB_CONTRATO.CD_CLIENTE AND
TB_CONTRATO.FL_EXCLUIDO = 0 AND TB_CONTRATO.ID_BANCO = @BANCO
AND TB_TITULO.DT_RECEBIMENTO IS NULL
Mensagem 102, NÃvel 15, Estado 1, Procedimento Sp_AtualizaDiasAtraso, Linha 21
Sintaxe incorreta próxima a [ô]NULL[ô].
CREATE PROCEDURE [dbo].[Sp_AtualizaDiasAtraso]
@PARAMETRO1 VARCHAR(10),
@PARAMETRO2 VARCHAR(10),
@BANCO INTEGER
AS
BEGIN
UPDATE TB_TITULO SET NR_DIAS_ATRASO = DATEDIFF(Day,@PARAMETRO1, @PARAMETRO2)
FROM TB_TITULO
INNER JOIN TB_CONTRATO ON
TB_TITULO.ID_CONTRATO = TB_CONTRATO.ID_CONTRATO AND
TB_TITULO.CD_CLIENTE = TB_CONTRATO.CD_CLIENTE AND
TB_CONTRATO.FL_EXCLUIDO = 0 AND TB_CONTRATO.ID_BANCO = @BANCO
AND TB_TITULO.DT_RECEBIMENTO IS NULL
Primeiro que é horroroso usar datas como strings, use tipagem de dados apropriada.
Segundo, veja o que está sendo passado no parâmetro Banco
Segundo, veja o que está sendo passado no parâmetro Banco
Mudei parametros 1 e 2 para DATE.... o erro se dá na criacao da SP dentro do sqlserver 2014, no management studio. e o campo TB_CONTRATO.ID_BANCO é integer ...
CREATE PROCEDURE [dbo].[Sp_AtualizaDiasAtraso]
@PARAMETRO1 date,
@PARAMETRO2 date,
@BANCO as INTEGER
AS
BEGIN
UPDATE TB_TITULO SET NR_DIAS_ATRASO = DATEDIFF(Day,@PARAMETRO1, @PARAMETRO2)
FROM TB_TITULO
INNER JOIN TB_CONTRATO ON
TB_TITULO.ID_CONTRATO = TB_CONTRATO.ID_CONTRATO AND
TB_TITULO.CD_CLIENTE = TB_CONTRATO.CD_CLIENTE AND
TB_CONTRATO.FL_EXCLUIDO = 0 AND TB_CONTRATO.ID_BANCO = @BANCO
AND TB_TITULO.DT_RECEBIMENTO = NULL
CREATE PROCEDURE [dbo].[Sp_AtualizaDiasAtraso]
@PARAMETRO1 date,
@PARAMETRO2 date,
@BANCO as INTEGER
AS
BEGIN
UPDATE TB_TITULO SET NR_DIAS_ATRASO = DATEDIFF(Day,@PARAMETRO1, @PARAMETRO2)
FROM TB_TITULO
INNER JOIN TB_CONTRATO ON
TB_TITULO.ID_CONTRATO = TB_CONTRATO.ID_CONTRATO AND
TB_TITULO.CD_CLIENTE = TB_CONTRATO.CD_CLIENTE AND
TB_CONTRATO.FL_EXCLUIDO = 0 AND TB_CONTRATO.ID_BANCO = @BANCO
AND TB_TITULO.DT_RECEBIMENTO = NULL
Faltava o END do Begin....
Tópico encerrado , respostas não são mais permitidas