User's Manual

have triggers defined to maintain the
subscription-list
column.
To create a subscription view
1. Design a query that uses a subquery to select the proper rows for a
subscription from a table.
For example, continuing the example from the preceding sections, the
following query selects the rows of the Contact table for a user
subscribed by rep_key value rep5:
SELECT
*
FROM Contact
WHERE ’rep5’ = (SELECT rep_key
FROM Customer
WHERE cust_key = Contact.cust_key )
2. Create a view that contains this subquery. For example:
CREATE VIEW Contact_sub_view AS
SELECT
*
FROM dbo.Contact
WHERE ’repxx’ = ( SELECT rep_key
FROM dbo.Customer
WHERE cust_key = dbo.Contact.cust_key )
In this view definition, it does not matter what value you use on the
left-hand side of the WHERE clause (repxx in the example above). The
replication tools use the subquery for extraction and synchronization
only. Rows for which the SUBSCRIBE BY value is equal to the
subquery result set are extracted or synchronized.
3. Give the name of the view as a parameter to sp_add_article or
sp_modify_article:
exec sp_add_remote_table ’Contact’
go
exec sp_add_article SalesRepData,
’Contact’,
NULL,
’subscription_list’,
’Contact_sub_view’
The subscription_list column is used for log scanning and the subquery is
used for extraction and synchronization.
For more information, see “Tuning extraction performance for shared
rows” on page 162, “sp_add_article procedure” on page 381, and
“sp_modify_article procedure” on page 398.
156