The ALTER SCHEMA statement modifies the data capture attribute
of an existing schema.
Invocation
This statement can be embedded
in an application program or issued through the use of dynamic SQL
statements. It is an executable statement that can be dynamically
prepared only if DYNAMICRULES run behavior is in effect for the package
(SQLSTATE 42509).
Authorization
The privileges
held by the authorization ID of the statement must include at least
one of the following authorities:
- Owner of the schema, as recorded in the OWNER column of SYSCAT.SCHEMATA
catalog view
- DBADM authority
Syntax
>>-ALTER SCHEMA--schema-name--DATA CAPTURE--+-NONE----+--------><
'-CHANGES-'
Description
- schema-name
- Identifies the schema to be altered. The schema-name must
identify a schema that exists at the current server (SQLSTATE 42704).
- DATA CAPTURE
- Indicates whether extra information for data replication is to
be written to the log.
- NONE
- Indicates that no extra information for data replication will
be logged.
- CHANGES
- Indicates
that extra information regarding SQL changes to this schema will be
written to the log. This option is required if this schema will be
replicated and a replication capture program is used to capture changes
for this schema from the log.
Notes
- Altering the DATA CAPTURE attribute at the schema level causes
newly created tables to inherit the DATA CAPTURE attribute from the
schema if one is not specified at the table level. Altering the DATA
CAPTURE attribute at the schema level does not affect the DATA CAPTURE
attribute of existing tables within that schema. If the DATA CAPTURE
attribute is changed and any existing tables do not match the new
attribute, a warning is returned (SQLSTATE 01696).
- To find the list of tables that have the DATA CAPTURE attribute
set to CHANGES, issue the following query:
SELECT TABNAME, TABSCHEMA FROM SYSCAT.TABLES
WHERE TYPE IN ('T','S','L')
AND DATACAPTURE <> 'N'
- To find the list of tables that have the DATA CAPTURE attribute
set to NONE, issue the following query:
SELECT TABNAME, TABSCHEMA FROM SYSCAT.TABLES
WHERE TYPE IN ('T','S','L')
AND DATACAPTURE = 'N'