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
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.
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
- yürütmek sp_addmergearticle değeri belirterek, bir makale tanımlamak içinMicrosoft SQL Sunucu saklı yordamının Çözümleyicisi için**@ article_resolver** parametre ve ' için çakışma giderici mantığını uygular saklı yordam adı**@ resolver_info** parametresi.Daha fazla bilgi için bkz: Nasıl Yapılır: Bir makale (çoğaltma Transact-SQL programlama) tanımlayın..
Özel çakışma giderici içeren varolan bir tabloyu makale kullanmak için
Execute sp_changemergearticle, specifying @publication, @article, a value of article_resolver for @property, and a value of MicrosoftSQL Server Stored ProcedureResolver for @value.
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.