This document covers the following topics:
For explanations of the symbols used in the syntax diagram, see Syntax Symbols.
Belongs to Function Group: Database Access and Update
The SQL UPDATE statement is used to perform an
                       UPDATE operation on either rows in a table without using a cursor
                       ("searched"
                          UPDATE) or columns in a row to which a cursor is
                       positioned ("positioned"
                          UPDATE).
               
Two different syntax structures are possible.
The "Searched" UPDATE statement is a
                       stand-alone statement not related to any SELECT statement. With a single
                       statement you can update zero, one, multiple or all rows of a table. The rows
                       to be updated are determined by a
                       search-condition that is applied to the
                       table. Optionally, view names and table names can be assigned a
                       correlation-name.
               
Note:
 The number of rows that have actually been updated with a
                          "searched" UPDATE can be ascertained by using the
                          system variable *ROWCOUNT.
                  
 UPDATE
                                     
                         |  
                                 
                        
                                     
                            
  |  
                                 
                        
                                     
                                        view-name  [correlation-name] 
                                     SET
                                           * 
                         |  
                                 
                        
                                     
                            
  |  
                                
                     ||||||||||
                                     table-name  [correlation-name] SET
                                     assignment-list
                                     
                         |  
                                
                     |||||||||||||
   [WHERE
                                        search-condition] 
                         |  
                                 
                        
                                     
                            
  |  
                                 
                        
                                     
                                         WITH   
                         |  
                                 
                        
                                     
                            
  |  
                                 
                        RR RS CS  |  
                                 
                        
                                     
                            
  |  
                                 
                        
                                     
                            
  |  
                                 
                        |||||||
For explanations of the symbols used in the syntax diagram, see Syntax Symbols.
Syntax Element Description - Syntax 1:
| Syntax Element | Description | |
|---|---|---|
                                    view-name
                                    
                         |  
                                
                         
                                    
                             View Name:  
                                    
                           Refers to the name of a Natural view as defined in the   |  
                               
                     |
                                    
                                       correlation-name 
                         |  
                                
                         
                                    
                            Correlation Name:  
                                    
                           The item  For further information, see
                                          |  
                               
                     |
 SET 
                         |  
                                
                         
                                    
                             SET Clause:  
                                    
                           If a view has been specified for updating, an
                                        asterisk (*) has to be specified in the  If a table has been specified for updating, the   |  
                               
                     |
                                    
                                    assignment-list 
                         |  
                                
                         
                                    
                            Assignment List: See
                                    Assignment
                                       List below.
                         |  
                               
                     |
                                    WHERE
                                       search-condition 
                         |  
                                
                         
                                    
                             WHERE Clause:  
                                    
                           This clause is used to specify the selection criteria for the rows to be updated. If no   |  
                               
                     |
                                    WITH
                                    
                         |  
                                
                         
                                    
                             WITH - Isolation Level Clause:  
                                    
                           This clause allows the explicit specification of the isolation level used when locating the row to be updated. For detailed information, see
                                        WITH
                                           isolation-level in the description of the
                                         It is only valid against DB2 databases. When used against other databases, it will cause runtime errors.  |  
                               
                     |
CS |  
                                
                        Cursor Stability | |
RR |  
                                
                        Repeatable Read | |
RS |  
                                
                        Read Stability | |
| 
                                      
                            
  |  
                                  
                        column-name = | 
                                      
                            
  |  
                                  
                        scalar-expression | 
                                      
                            
  |  
                                  
                        
                                      
                            
  |  
                                  
                        , | 
                            
  |  
                                 
                     
NULL |  
                                 
                     
In an assignment-list, you can
                         assign values to one or more columns. A value can be either a
                         scalar-expression or NULL.
                         For further information, see
                         Scalar
                            Expressions.
               
If the value NULL has been assigned, it means that the
                         addressed field is to contain no value (not even the value "0" or
                         "blank"). 
               
Syntax Element Description:
The "positioned" UPDATE statement always
                       refers to a cursor within a database loop. Thus, the table or view referenced
                       by a positioned UPDATE statement must be the same as the one
                       referenced by the corresponding SELECT statement; otherwise an
                       error message is returned. A positioned UPDATE cannot be used with
                       a non-cursor selection.
               
Common Set Syntax:
 UPDATE
                                    
                         |  
                                
                        
                                    
                            
  |  
                                
                        
                                    
                                       view-name   
                                     SET *
                                        
                         |  
                                
                        
                                    
                            
  |  
                                
                         [WHERE CURRENT OF
                                          CURSOR   (r)]
                                    
                         |  
                               
                     
                                    
                                       view-name   
                                     SET 
                                    
                                       assignment-list  
                         |  
                               
                     
Syntax Element Description - Syntax 2:
| Syntax Element | Description | 
|---|---|
                                    view-name
                                    
                         |  
                                
                         
                                    
                            Natural View:  
                                    
                           Refers to the name of a Natural view as defined in the   |  
                               
                     
 SET * 
                                    
                           
                         |  
                                
                         
                                    
                             SET Clause:  
                                    
                           If a Natural view has been specified for updating, an asterisk (*)
                                        has to be specified in the  If a table has been specified for updating, the   |  
                               
                     
WHERE CURRENT OF CURSOR
                                       (r) |  
                                
                         
                                    
                             Statement Reference:  
                                    
                           The   |  
                               
                     
DEFINE DATA LOCAL 1 PERS VIEW OF SQL-PERSONNEL 2 NAME 2 AGE ... END-DEFINE ... ASSIGN AGE = 45 ASSIGN NAME = 'SCHMIDT' UPDATE PERS SET * WHERE NAME = 'SCHMIDT' ...
DEFINE DATA LOCAL 1 PERS VIEW OF SQL-PERSONNEL 2 NAME 2 AGE ... END-DEFINE ... UPDATE SQL-PERSONNEL SET AGE = AGE + 1 WHERE NAME = 'SCHMIDT' ...
DEFINE DATA LOCAL 1 PERS VIEW OF SQL-PERSONNEL 2 NAME 2 AGE ... END-DEFINE ... SELECT * INTO PERS FROM SQL_PERSONNEL WHERE NAME = 'SCHMIDT' COMPUTE AGE = AGE + 1 UPDATE PERS SET * WHERE CURRENT OF CURSOR END-SELECT ...
DEFINE DATA LOCAL 1 PERS VIEW OF SQL-PERSONNEL 2 NAME 2 AGE ... END-DEFINE ... SELECT * INTO PERS FROM SQL-PERSONNEL WHERE NAME = 'SCHMIDT' UPDATE SQL-PERSONNEL SET AGE = AGE + 1 WHERE CURRENT OF CURSOR END-SELECT ...