Workaround for scenario 1
To work around this problem, set the
Convert TIMESTAMP to BINARY setting to
True for the article. To do this, follow these steps:
- On the computer that is running SQL Server 2005, start SQL Server Management Studio.
- In Object Explorer, expand the computer that contains your publication, expand Replication, and then expand Publications.
- Right-click the publication name, and then click Properties.
- In the Properties dialog box, click Articles.
- Select an article, click Article Properties, and then click Set Properties of Highlighted Table Article. The Article Properties dialog box appears.
- In the Distinction Object section of the properties list, set the Convert TIMESTAMP to BINARY setting to True.
Additionally, disable the
0x08 schema option to work around this problem. To do this, use one of the following methods:
- When you run the sp_addarticle system stored procedure to create an article, set the @schema_option parameter to exclude the schema option 0x08. For more information about the @schema_option parameter, visit the following Microsoft Developer Network (MSDN) Web site:
- Run the following statement against the publication database:
update sysarticles set schema_option = schema_option - (schema_option & 8) * 8 where artid = [<Your_Article_ID>]
Note When you set the
Convert TIMESTAMP to BINARY setting to
True, the underlying behavior is the same as the behavior that occurs when you disable the
0x08 schema option.
Workaround for scenario 2
To work around this problem, use one of the following methods.
Method 1
Change replication publication from concurrent snapshot processing to nonconcurrent snapshot processing.
Note When you use this method, you cannot update the publishing table when the snapshot is being generated.
To do this, set the value of the
sync_method parameter to one of the following values when you call the
sp_addpublication stored procedure directly to add the publication:
Do not set the value of the
sync_method parameter to
concurrent or
concurrent_c.
Note You cannot use SQL Server Management Studio to set this value.
If you already have the publication, you can change this setting by running the following statement on your publication database:
update syspublications set sync_method = <0 or 1>
Note In this statement,
<0 or 1> represents the value of the
sync_method parameter. If the original value of the
sync_method parameter is 3, change the value to 0. If the original value is 4, change the value to 1.
After you complete this workaround, you must regenerate the snapshot. Additionally, you must reinitialize the subscription.
Method 2
When you call the
sp_addarticle stored procedure directly to add the article, use the following criteria to set the
@schema_option parameter:
- If you have an identity column that does not have a primary key, exclude schema option 0x4.
- If you have a timestamp column that does not have a primary key, exclude schema option 0x8.
Note No corresponding schema option exists for computed columns. Therefore, this workaround does not apply to computed columns.
If the publication is already created, you can directly disable schema option
0x04 or schema option
0x08. To do this, run the following Transact-SQL statements:
update sysarticles set schema_option = schema_option - (schema_option & 8) * 8 where artid = [<Your_Article_ID>]
update sysarticles set schema_option = schema_option - (schema_option & 4) * 4 where artid = [<Your_Article_ID>]
Method 3
Add one or more updatable columns to the publishing table.