Aracılığıyla paylaş


Nasıl Yapılır: Bir saklı yordam-based özel çakışma giderici bir birleştirme makalesi (çoğaltma Transact-SQL programlama) için uygular.

Kendi özel çakışma giderici olarak yazabileceğiniz bir Transact-SQL saklı yordam her Yayımcı adresindeki. Çakışmalar, çözümleyici kaydedildiği ve bilgi Çakışma satırdaki yordamın gerekli parametreleri Birleştirme Aracısı tarafından geçirilen bir makalenin girildiğinde, eşitleme sırasında bu saklı yordam çağrılır.saklı yordam-tabanlı özel çakışma çözümleyiciler, Yayımcı tarafında her zaman oluşturulur.

Not

Microsoft SQL Server saklı yordam çözümleyiciler, yalnızca satır değişiklik tabanlı çakışmaları işlemek için çağrılır.Bunlar, çakışmaları ekleme hataları nedeniyle birincil anahtar ihlallerine veya benzersiz dizin kısıtlama ihlalleri gibi diğer türdeki işlemek için kullanılamaz.

Saklı yordam tabanlı özel çakışma giderici oluşturmak için

  1. Yayımcı ya da yayında adresindeki veya msdb veritabanı, yeni bir sistem oluşturmak saklı yordam, aşağıdaki gerekli parametreleri uygular:

    Parameter

    Veri türü

    Açıklama

    @ tableowner

    sysname

    Sahibinin adı tablo için bir çakışmanın giderilip.Bu, sahibi, tablo yayın veritabanında.

    @tablename

    sysname

    Adı tablo için bir çakışmanın giderilip.

    @rowguid

    uniqueidentifier

    Çakışma olan satır benzersiz tanıtıcısı.

    @subscriber

    sysname

    Burada bir çakışan değişikliği yayılmasını sunucunun adı.

    @subscriber_db

    sysname

    Burada Çakışan değişikliği yayılmasını veritabanının adı.

    OUTPUT log_conflict

    int

    Olup mektup birleştirme işlemi bir çakışma sonrası çözümleme için oturum açması gerekir:

    0 = Çakışmayı oturum.

    1 = Çakışma kaybeden abone olur.

    2 = Yayımcı çakışma kaybeden olur.

    OUTPUT conflict_message

    nvarchar(512)

    Çakışmayı günlüğe kaydedilirse, çözümlemesi verilecek ileti'yi tıklatın.

    @ destowner

    sysname

    Yayımlanmış sahibine tablo abone adresindeki.

    Bu saklı yordam, kendi özel çakışma çözünürlüğü mantığı uygulamak için bu parametreler için Birleştirme Aracısı tarafından aktarılan değerler kullanır; bu, tek bir satır bir sonuç kümesi için temel yapı içinde aynı döndürmelidir tablo ve kazanan satır sürüm için veri değerleri içerir.

  2. Yayımcıya bağlanmak için aboneleri tarafından kullanılan tüm oturumlar için saklı yordam üzerinde yürütmek izni ver.

Yeni bir tablo makale özel çakışma giderici kullanmak için

Özel çakışma giderici içeren varolan bir tabloyu makale kullanmak için

  1. Execute sp_changemergearticle, specifying @publication, @article, a value of article_resolver for @property, and a value of MicrosoftSQL Server Stored ProcedureResolver for @value.

  2. yürütmek sp_changemergearticle belirtme,@ yayın, @ makale değeriresolver_info for @ özellikve ' için çakışma giderici mantığını uygular saklı yordam adıdeğer.