現在の接続の現在のトランザクションで行う変更を、データベースに恒久的に反映します。 
               
            
 
            	 
            
               構文:
 
               		 
               		>>---EXEC SQL--.------------.--->
               +-AT db_name-+             
 >---COMMIT----.--------------.--->
               +-WORK---------+
               +-TRAN---------+
               +-TRANSACTION--+
 >---.-----------.---END-EXEC--><
     +--RELEASE--+ 
               	   
            	 
            
               パラメーター:
 
               		 
               		
                
                  		
                  
                      
                        			  
                        			  
                        			 
                         
                           				
                            
                              				  
                              | AT db_name |  
                              				  
                              DECLARE DATABASE を使用して宣言されたデータベースの名前。この句は省略可能です。省略すると、現在の接続がコミットされます。この句を指定して、指定された接続が現在の接続と異なる場合は、DECLARE CURSOR 文に関連付けられた接続でコミットが実行されます。 |  
                              				
                           
 
                           				
                            
                              				  
                              | WORK |  
                              				  
                              WORK、TRAN および TRANSACTION は省略可能な同義語です。 |  
                              				
                           
 
                           				
                            
                              				  
                              | RELEASE |  
                              				  
                              RELEASE が指定され、トランザクションが正常にコミットされると、現在の接続は切断されます。 |  
                              				
                           
 
                           			 
                         
                        		  
                     
                    
                  		
                 
               	 
              
            	 
            
               例:
 
               		 
               		* Ensure that multiple records are not inserted for a
* member of staff whose staff_id is 99
     EXEC SQL
        DELETE FROM staff WHERE staff_id = 99
     END-EXEC
* Insert dummy values into table
     EXEC SQL
        INSERT INTO staff
        (staff_id
        ,last_name
        ,first_name
        ,age
        ,employment_date)
        VALUES
        (99
        ,'Lee'
        ,'Phil'
        ,19
        ,'1992-01-02')
     END-EXEC
     IF SQLCODE NOT = ZERO
        DISPLAY 'Error: Could not insert dummy values.'
        DISPLAY SQLERRMC
        DISPLAY SQLERRML
        EXEC SQL DISCONNECT ALL END-EXEC
        STOP RUN
     END-IF
     EXEC SQL
        COMMIT
     END-EXEC
* Check it was committed OK
     IF SQLCODE = ZERO
        DISPLAY 'Error: Could not commit values.'
       DISPLAY SQLERRMC
        DISPLAY SQLERRML
        EXEC SQL DISCONNECT CURRENT END-EXEC
        STOP RUN
     END-IF
     DISPLAY 'Values committed.'
* Delete previously inserted data
     EXEC SQL
        DELETE FROM staff WHERE staff_id = 99
     END-EXEC
     IF SQLCODE NOT = ZERO
        DISPLAY 'Error: Could not delete dummy values.'
        DISPLAY SQLERRMC
        DISPLAY SQLERRML
        EXEC SQL DISCONNECT ALL END-EXEC
        STOP RUN
     END-IF
* Check data deleted OK, commit and release the connection
     IF SQLCODE NOT = ZERO
        DISPLAY 'Error: Could not delete values.'
        DISPLAY SQLERRMC
        DISPLAY SQLERRML
        EXEC SQL DISCONNECT ALL END-EXEC
        STOP RUN
     END-IF
       
     EXEC SQL
        COMMIT WORK RELEASE
     END-EXEC
* Check data committed OK and release the connection.
    IF SQLCODE NOT = ZERO
        DISPLAY 'Error: Could not commit and release.'
        DISPLAY SQLERRMC
        DISPLAY SQLERRML
        EXEC SQL DISCONNECT CURRENT END-EXEC
     END-IF
     DISPLAY 'Values committed and connection released.'