dbo.QBM_FSQTriggerDef
Scalar FunctionSQL_SCALAR_FUNCTIONSandbox DB
Interpretation
- Database function. Usually supports views, validation, or calculated predicates; look at referenced-by entries for callers.
Relations
- No extracted relations.
Typed Edges
- references source dbo.QBM_FCVStringToInt source text reference
- references source dbo.QBM_FGISessionContext source text reference
- references source dbo.QBM_FSQStringAsLiteral source text reference
- references source dbo.QBM_PProcedureNestLevelCheck source text reference
- references source dbo.QBM_PSessionErrorAdd source text reference
Complete Source
1CREATE FUNCTION dbo.QBM_FSQTriggerDef(2 @TriggerName varchar(30),3 @TableName varchar(30),4 @Operation varchar(30),5 @UserDefinedBody nvarchar(max),6 @Declarations nvarchar(max) = N '',7 @SourceName nvarchar(256) = N ''8) RETURNS nvarchar(max9)10AS11BEGIN12 DECLARE @TableType varchar(1)13 SELECT TOP 1 @TableType = TableType14 FROM DialogTable15 WITH(readpast)16 WHERE17 TableName = @TableName18 IF @TableType IN('M')19 BEGIN20 GOTO endLabel21 END22 DECLARE @erg nvarchar(max)23 SELECT24 @erg = N 'create or alter Trigger dbo.' + @Triggername + N ' on ' + @TableName + N '25 -- with encryption 26 ' + CASE27 WHEN @TableType IN('R',28 'P',29 'U') THEN30 N ' instead of '31 ELSE N ' for '32 END + @Operation + N '33 not for replication 34as 35 begin 36 -- exec QBM_PProcedureNestLevelCheck @@ProcID37 38 declare @GenProcID varchar(38) = dbo.QBM_FGISessionContext('''')39 declare @ActionUser nvarchar(64) = dbo.QBM_FGISessionContext(''XUser'')40 declare @operationLevel int4142-- user defined vars43'44 + @Declarations + N '45-- / user defined vars'46 IF @operation IN('insert',47 'update')48 BEGIN49 SELECT @erg= @erg+ N '50 if exists (select top 1 1 from inserted) goto start'51 END52 IF @operation IN('delete',53 'update')54 BEGIN55 SELECT @erg = @erg+ N '56 if exists (select top 1 1 from deleted) goto start'57 END58 SELECT59 @erg = @erg+ N ' 60 goto endLabel61 start:62BEGIN TRY63select @operationLevel = dbo.QBM_FCVStringToInt(dbo.QBM_FGISessionContext(''operationLevel''), 0) + @@nestlevel -1 64-- user defined body65'66 + @UserDefinedBody + N '67-- / user defined body68END TRY69BEGIN CATCH7071 exec QBM_PSessionErrorAdd default' + CASE72 WHEN @SourceName > ' ' THEN73 N ' , ' + dbo.QBM_FSQStringAsLiteral(@SourceName,74 1,75 0)76 ELSE N ''77 END + N '7879 RAISERROR ('''', 18, 1) WITH NOWAIT8081END CATCH82 83endLabel:84 return 85end' endLabel:86 RETURN(@erg)87END
Open raw exported source
1 create function dbo.QBM_FSQTriggerDef (@TriggerName varchar(30) , @TableName varchar(30) , @Operation varchar(30) , @UserDefinedBody nvarchar2(max) , @Declarations nvarchar(max) = N'' , @SourceName nvarchar(256) = N'' ) returns nvarchar(max) as begin declare @TableType varchar(1) select top3 1 @TableType = TableType from DialogTable with (readpast) where TableName = @TableName if @TableType in ( 'M') begin goto endLabel end declare @erg nvarchar4(max) select @erg = N'create or alter Trigger dbo.' + @Triggername + N' on ' + @TableName + N'5 -- with encryption 6 ' + case when @TableType in ('R'7, 'P', 'U') then N' instead of ' else N' for ' end + @Operation + N'8 not for replication 9as 10 begin 11 -- exec QBM_PProcedureNestLevelCheck @@ProcID12 13 declare @GenProcID varchar(38) = dbo.QBM_FGISessionContext('''')14 declare @ActionUser nvarchar(64) = dbo.QBM_FGISessionContext(''XUser'')15 declare @operationLevel int1617-- user defined vars18'19 + @Declarations + N'20-- / user defined vars' if @operation in ('insert', 'update') begin select @erg= @erg+ N'21 if exists (select top 1 1 from inserted) goto start'22 end if @operation in ('delete', 'update') begin select @erg = @erg+ N'23 if exists (select top 1 1 from deleted) goto start' end select @erg = @erg+ N' 24 goto endLabel25 start:26BEGIN TRY27select @operationLevel = dbo.QBM_FCVStringToInt(dbo.QBM_FGISessionContext(''operationLevel''), 0) + @@nestlevel -1 28-- user defined body29'30 + @UserDefinedBody + N'31-- / user defined body32END TRY33BEGIN CATCH3435 exec QBM_PSessionErrorAdd default' + case when @SourceName > ' ' then N' , '36 + dbo.QBM_FSQStringAsLiteral(@SourceName, 1, 0) else N'' end + N'3738 RAISERROR ('''', 18, 1) WITH NOWAIT3940END CATCH41 42endLabel:43 return 44end'45 endLabel: return(@erg) end 46