Я настроил репликацию транзакций в SQL Server 2005 и отключил триггер DDL, созданный при настройке репликации.После небольшой игры (чтобы понять, что произойдет), транзакция прерывается, потому что я изменил столбец на издателе на VARCHAR
, то есть INT
на подписчике.Я нашел две процедуры, которые помогут пропустить эту ошибочную транзакцию
EXEC sp_helpsubscriptionerrors
@publisher='DB1',@publisher_db='repl_test',@publication='repl_test_table',
@subscriber='DB2',@subscriber_db='repl_test'
, которая дает мне набор результатов, где я вижу ошибку (сбой при преобразовании VARCHAR
в INT
)
id time [...] error_code error_text xact_seqno
24 2012-02-23 08:33:35.313 [...] 8114 Fehler beim Konvertieren des varchar-Datentyps in int. 0x00139791000CC79C000600000000
24 2012-02-23 08:33:35.310 [...] 8114 Fehler beim Konvertieren des varchar-Datentyps in int. 0x00139791000CC79C000600000000
[...]
и я использую xact_seqno
из результата (0x00139791000CC79C000600000000), чтобы выполнить следующую процедуру на следующем шаге
EXEC sp_setsubscriptionxactseqno
@publisher='DB1',@publisher_db='repl_test',@publication='repl_test_table',
@xact_seqno=0x00139791000CC79C000600000000
, которая скажет:
Ошибка 20017 -Подписка на подписчика не существует.
Да?