我在SQL Server中编写了一个触发器,如下所示
DECLARE @N_CATComp smallint, @EXON varchar(69), @DATEDEB varchar(15), @DATEFIN varchar(15)
SELECT
@N_CATComp = N_CATCompta,
@EXON =[Exon N°],
@DATEDEB = CONVERT(varchar(15), [Date début] , 103),
@DATEDEB = CONVERT(varchar(15), [Date début] , 103)
FROM INSERTED
IF (@N_CATComp =4) AND ( ISNULL(@EXON,'')='' OR ISNULL(@DATEDEB,'') ='' OR ISNULL(@DATEFIN,'') ='')
BEGIN
RAISERROR('false',11,1)
END
我的问题是,当@exon时,@datedeb,@datefin 不为空并且 catcomp=4 会出现不应该出现的错误我试图通过例如 len(@EXON)=0 在这种情况下 ven 来消除 isnull 如果值为空,则不会出现 raiserror
删除所有这些标量变量也是如此。
IF EXISTS
(
SELECT *
from inserted
where N_CATCompta = 4
AND
(
ISNULL([Exon N°], '') = ''
OR
ISNULL([Date début], '') = ''
)
)
RAISERROR('false',11,1)