Back to OIM Explorer

dbo.QBM_FSQTriggerDef

Scalar FunctionSQL_SCALAR_FUNCTIONSandbox DB

Scalar Function.

Source: sandbox-db sys.sql_modules

Source size: 1.852 characters

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

SQL87 lines
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
SQL ยท Raw46 lines
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