![]() |
---|
CREATE trigger dbo.TR_PDACCOUNTSEGMENTVALUE_INS on dbo.PDACCOUNTSEGMENTVALUE for insert as declare @IsBasicGL Bit declare @ShortID nvarchar(100); declare @Description nvarchar(60); declare @Length tinyint; select top 1 @IsBasicGL = T2.ISBASICGL, @ShortID = T1.SHORTDESCRIPTION, @Description = T1.DESCRIPTION, @Length = T2.LENGTH from inserted T1 join dbo.PDACCOUNTSTRUCTURE T2 on T1.PDACCOUNTSTRUCTUREID = T2.ID if @IsBasicGL = 0 begin if UPDATE(SHORTDESCRIPTION) begin if not ((len(@ShortID) = @Length) and (@Length > 0)) and not ((@Length = 0) and (len(@ShortID)>=(0)) and (len(@ShortID) < 101)) BEGIN RAISERROR ('CK_DATAELEMENT_LENGTH', 16, 1) ROLLBACK END if not ((charindex('*',@ShortID) = 0) and (charindex('%',@ShortID) = 0) and (charindex('-',@ShortID) = 0) and (charindex(',',@ShortID) = 0) and (charindex('/',@ShortID) = 0) and (charindex(';',@ShortID) = 0) and (charindex('.',@ShortID) = 0)) BEGIN RAISERROR ('CK_DATAELEMENT_SHORTIDVALIDCHARACTERS', 16, 1) ROLLBACK END if @Description is null BEGIN RAISERROR ('CK_DATAELEMENT_DESCRIPTION', 16, 1) ROLLBACK END if not ((len(@Description)>(0)) and (len(@Description) < 61)) BEGIN RAISERROR ('CK_DATAELEMENT_DESCRIPTION', 16, 1) ROLLBACK END if not ((charindex('*',@Description) = 0) and (charindex('?',@Description) = 0)) begin raiserror('CK_DATAELEMENT_DESCRIPTIONVALIDCHARACTERS', 16, 1) rollback end end end else begin if not ((len(@ShortID)>=(0)) and (len(@ShortID) < 101)) BEGIN RAISERROR ('CK_PDACCOUNTSEGMENTVALUE_SHORTDESCRIPTION', 16, 1) ROLLBACK END end |