table-name
The table-name indicates the table that must be modified on the remote databases.

publication-name
The publication-name indicates the publication for which subscriptions must be changed.

subscription-expression
The value of subscription-expression is used by SQL Remote to determine both new and existing recipients of the rows. The subscription-expression is either a value or a subquery.Alternatively, you can provide both OLD and NEW subscription expressions.

WHERE
The WHERE clause specifies which rows are to be transferred between subscribed databases.

The UPDATE statement is used to modify rows of one or more tables. Each named column is set to the value of the expression
on the right-hand side of the equal sign. There are no restrictions on the expression. Even column-name can be used in the expression—the old value is used.

If no WHERE clause is specified, every row is updated. If a WHERE clause is specified, then only those rows which satisfy
the search condition are updated.

Normally, the order that rows are updated does not matter. However, in conjunction with the NUMBER(*) function, an ordering
can be useful to get increasing numbers added to the rows in some specified order. Also, if you want to do something like
add 1 to the primary key values of a table, it is necessary to do this in descending order by primary key, so that you do
not get duplicate primary keys during the operation.

Views can be updated provided the SELECT statement defining the view does not contain a GROUP BY clause, an aggregate function,
or involve a UNION clause.

Character strings inserted into tables are always stored in the case they are entered, regardless of whether the database
is case sensitive or not. So, a character data type column updated with a string Value is always held in the database with
an uppercase V and the remainder of the letters lowercase. SELECT statements return the string as Value. If the database is
not case sensitive, however, all comparisons make Value the same as value, VALUE, and so on. Further, if a single-column primary
key already contains an entry Value, an INSERT of value is rejected, as it would make the primary key not unique.

The optional FROM clause allows tables to be updated based on joins. If the FROM clause is present, the WHERE clause qualifies
the rows of the FROM clause. Data is updated only in the table list immediately following the UPDATE keyword.

If a FROM clause is used, it is important to qualify the table name that is being updated the same way in both parts of the
statement. If a correlation name is used in one place, the same correlation name must be used in the other. Otherwise, an
error is generated.

Syntax 1 and Syntax 2 are applicable only to SQL Remote.

Syntax 2 with no OLD and NEW SUBSCRIBE BY expressions must be used in a BEFORE trigger.

Syntax 2 with OLD and NEW SUBSCRIBE BY expressions can be used anywhere.

Syntax 1 is intended for use with SQL Remote only, in single-row updates executed by the Message Agent. The VERIFY clause
contains a set of values that are expected to be present in the row being updated. If the values do not match, any RESOLVE
UPDATE triggers are fired before the UPDATE proceeds. The UPDATE does not fail if the VERIFY clause fails to match. When the
VERIFY clause is specified, only one table can be updated at a time.

Syntax 2 is intended for use with SQL Remote only. If no OLD and NEW expressions are used, it must be used inside a BEFORE
trigger so that it has access to the relevant values. The purpose is to provide a full list of subscribe by values any time
the list changes. It is placed in SQL Remote triggers so that the database server can compute the current list of SUBSCRIBE
BY values. Both lists are placed in the transaction log.

The Message Agent uses the two lists to make sure that the row moves to any remote database that did not have the row and
now needs it. The Message Agent also removes the row from any remote database that has the row and no longer needs it. A remote
database that has the row and still needs it is not affected by the UPDATE statement.

Syntax 2 of the UPDATE statement allows the old SUBSCRIBE BY list and the new SUBSCRIBE BY list to be explicitly specified,
which can make SQL Remote triggers more efficient. In the absence of these lists, the database server computes the old SUBSCRIBE
BY list from the publication definition. Since the new SUBSCRIBE BY list is commonly only slightly different from the old
SUBSCRIBE BY list, the work to compute the old list may be done twice. By specifying both the old and new lists, this extra
work can be avoided.

The OLD and NEW SUBSCRIBE BY syntax is especially useful when many tables are being updated in the same trigger with the same
subscribe by expressions. This can dramatically increase performance.

The SUBSCRIBE BY expression is either a value or a subquery.

Syntax 2 of the UPDATE statement is used to implement a specific SQL Remote feature, and is to be used inside a BEFORE trigger.

For publications created using a subquery in a subscription expression, you must write a trigger containing syntax 2 of the
UPDATE statement to ensure that the rows are kept in their proper subscriptions.