0

1つのパブリッシャーと12のサブスクライバーの間でMergeレプリケーションを構成し、すべてSQL Server2008R2を使用しています

サブスクリプションの1つで、以下のエラーが発生します

Error messages:
The merge process could not replicate one or more UPDATE statements to the 'Subscriber' because a stored procedure failed to execute. Troubleshoot by using SQL Profiler. (Source: MSSQL_REPL, Error number: MSSQL_REPL-2147200989)
Get help: http://help/MSSQL_REPL-2147200989
Cannot insert duplicate key row in object 'dbo.MSmerge_contents' with unique index 'nc2MSmerge_contents'. (Source: MSSQLServer, Error number: 2601)
Get help: http://help/2601

エラーでは、「Cannot insert duplicate key row in object 'dbo.MSmerge_contents' with unique index 'nc2MSmerge_contents'」インデックススクリプトをチェックnc2MSmerge_contentsしましたが、インデックスに一意の制約が指定されていません。

CREATE NONCLUSTERED INDEX [nc2MSmerge_contents] ON [dbo].[MSmerge_contents] 
(
    [generation] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO

以下はテーブルの構造です

ここに画像の説明を入力してください

サブスクリプションを削除/再作成せずにこれを修正する必要があります。誰か助けてくれませんか

4

1 に答える 1

0

問題は、データベースとインデックスが破損していたことです。以下のリンクをたどった後に修正されました

https://dba.stackexchange.com/questions/16113/unique-index-corrupted-sql-select-query-returns-single-row-but-create-unique-in

于 2012-04-10T11:39:34.853 に答える