Remove Physical File Trigger (RMVPFTRG)
|Where allowed to run: All environments (*ALL)
The Remove Physical File Trigger (RMVPFTRG) command removes the triggers that call trigger programs from a specified physical file. The triggers to be removed can be specified by trigger events, trigger times or trigger name. A trigger program is a program that has been added to the specified physical file by the Add Physical File Trigger (ADDPFTRG) command (system trigger) or the SQL CREATE TRIGGER statement (SQL trigger).
If a trigger time, trigger event and trigger name are specified and the trigger time and event do not match the time and event for the trigger definition name, the trigger will not be removed.
Once a trigger is removed from the physical file for a specified trigger time or event or name, the trigger program is no longer called when the trigger event occurs within the file. If the trigger was a system trigger, the trigger program continues to exist on the system. If the trigger was an SQL trigger, the trigger program is deleted.
An exclusive-no-read lock is held on the physical file when removing the trigger from that file. All logical files which are built over the physical file are also held with the exclusive no-read lock.
- You must have object alter (*OBJALTER) or object management (*OBJMGT) authority to the physical file and execute (*EXECUTE) authority to the library that contains the file.
- If the physical file or a dependent logical file or Structured Query Language (SQL) view is opened in this or another job, the trigger cannot be removed.
- While this command is running, neither the physical file nor any dependent logical files can be opened.
- This command is conditionally threadsafe. In multithreaded jobs, this command is not threadsafe for distributed files and fails for distributed files that use relational databases of type *SNA.
|FILE||Physical file||Qualified object name||Required, Positional 1|
|Qualifier 1: Physical file||Name|
|Qualifier 2: Library||Name, *LIBL, *CURLIB|
|TRGTIME||Trigger time||*ALL, *BEFORE, *AFTER||Optional, Positional 2|
|TRGEVENT||Trigger event||*ALL, *INSERT, *DELETE, *UPDATE, *READ||Optional, Positional 3|
|TRG||Trigger||Character value, *ALL||Optional|
|TRGLIB||Trigger library||Name, *FILE, *CURLIB||Optional|
Physical file (FILE)
Specifies the physical file from which the trigger is to be removed. The specified file must exist on the system.
This is a required parameter.
Qualifier 1: Physical file
- Specify the name of the file from which the trigger is to be removed.
Qualifier 2: Library
- All libraries in the library list for the current thread are searched until the first match is found.
- The current library for the job is searched. If no library is specified as the current library for the job, the QGPL library is used.
- Specify the name of the library to be searched.
Trigger time (TRGTIME)
Specifies the trigger to be removed, based on the time when the trigger program is called.
- All triggers for programs called either before or after a trigger event are removed.
- The triggers for programs called before a trigger event are removed.
- The triggers for programs called after a trigger event are removed.
Trigger event (TRGEVENT)
Specifies the trigger event for which the associated triggers are removed.
- All triggers for insert, delete, and update operations are removed.
- The triggers for insert operations are removed.
- The triggers for delete operations are removed.
- The triggers for update operations are removed.
- The triggers for read operations are removed.
Specifies the name of the trigger being removed.
- All trigger definitions are removed, including SQL triggers.
- Specify the name of the trigger. You can specify a maximum of 128 characters without delimiters, or 258 characters with quotation mark (") delimiters.
The following are examples of the TRG parameter dependencies:
- TRG(*ALL) TRGTIME(*ALL) TRGEVENT(*ALL) - All triggers are removed.
- TRG(*ALL) TRGTIME(*INSERT) TRGEVENT(*AFTER) - All *INSERT *AFTER triggers are removed.
- TRG(ABC) TRGTIME(*ALL) TRGEVENT(*ALL) - The triggers named ABC are removed.
Trigger library (TRGLIB)
Specifies the library for the trigger being removed.
Note: The special values *LIBL and *CURLIB are the values of the job running when the trigger is removed.
- The library for the file specified for the Physical file (FILE) parameter is used.
- The current library for the job is used. If no library is specified as the current library for the job, the QGPL library is used.
- Specify the name of the library to be used.
Example 1: Removing All Triggers for Insert Events
RMVPFTRG FILE(EMP) TRGEVENT(*INSERT)
This command removes all triggers for programs called by insert operations from the physical file named EMP.
Example 2: Removing All Triggers for Programs Called Before a Trigger Event
RMVPFTRG FILE(EMP) TRGTIME(*BEFORE)
This command removes all triggers for programs called before trigger events from the physical file named EMP.
- Trigger operation not successful.