Bir birleştirme makale çözümleyici belirtmek
Bu konuda bir birleştirme makale çözümleyici belirtmek nasıl açıklar SQL Server 2012kullanarak SQL Server Management Studioya Transact-SQL.
Bu Konuda
Başlamadan Önce
Öneriler
Kullanarak bir birleştirme makale çözümleyici belirtmek için:
SQL Server Management Studio
Transact-SQL
Başlamadan Önce
Öneriler
Birleştirme çoğaltması makale çözümleyiciler aşağıdaki türlerini sağlar:
Varsayılan çözümleyici. Varsayılan çözümleyici davranışını abonelik istemci abonelik veya sunucu abonelik olmasına bağlıdır. Abonelik türünü belirtme hakkında daha fazla bilgi için bkz: Birleştir abonelik türü ve çakışma çözümleme öncelik (SQL Server Management Studio'yu) belirtin.
Özel bir çözümleyici, bir iş mantığı işleyicisi (yönetilen kodunda yazılmış) veya özel bir com tabanlı çözümleyici olabilen yazdığınız. Daha fazla bilgi için, bkz. Gelişmiş birleştirme çoğaltma çakışma algılaması ve Çözümlemesi. Sadece çelişkili satırlar için çoğaltılmış her satırı görmek için yürütülen özel mantık sağlamanız gerekiyorsa Birleştirme makale Business Logic işleyicisi gerçekleştir.
Standart bir com tabanlı çözümleyici, hangi ile birlikte Microsoft SQL Server.
Varsayılan çözümleyici dışındaki bir çözümleyici kullanmak için çözümleyici Birleştirme Aracısı çalıştığı bilgisayara kopyalayın ve kayıt (iş mantığı işleyicisi kullanıyorsanız, bunu da yayımcı kayıtlı olmalıdır). Birleştirme Aracısı çalışır:
Itme abonelik dağıtımcı
Çekme abonelik abone
Microsoftİçin bir çekme abonelik Web eşitleme kullanan Internet Information Services (IIS) sunucusu
[Top]
SQL Server Management Studio Kullanarak
Çözümleyici kaydedildikten sonra bir makale çözümleyici üzerinde kullanacağını belirtmek çözümleyici sekmesini Makalesi özellikleri - <Madde > iletişim kutusunda, Yeni Yayın Sihirbazı'nda bulunan ve Yayını özellikleri - <yayın > iletişim kutusu. Sihirbaz ve iletişim kutusuna erişme hakkında daha fazla bilgi için bkz: Yayın oluşturmave Yayın özelliklerini görüntüleme ve değiştirme.
Bir çözümleyici belirtmek için
Tarih Makaleler sayfa yeni yayın sihirbazını veya Yayını özellikleri - <yayın > iletişim kutusunda, bir tablo seçin.
Tıklayın Makale özelliklerinive'yi Ayarlama özellikleri, vurgulanmış tablo makalesi.
Tarih Makalesi özellikleri - <yazı > sayfa'yı çözümleyici sekmesi.
Seçin **kullanımı özel bir çözümleyici (at dağıtımcı kayıtlı)**ve çözümleyici listesinde tıklatın.
Çözümleyici (bir sütun adı gibi) giriş gerektiriyorsa, onu belirtmek çözümleyici tarafından gerekli bilgilerini girin metin kutusu.
Tamam’ı tıklatın.
Bir çözümleyici gerektiren her yazı için bu işlemi yineleyin.
[Top]
Transact-SQL'i Kullanma
Özel çakışma çözümleyici kaydetmek için
Kendi özel çakışma çözümleyici kaydetmek planlıyorsanız, aşağıdaki türlerden birini oluşturun:
Yönetilen kod tabanlı çözümleyici olarak iş mantığı işleyicisi. Daha fazla bilgi için, bkz. Birleştirme makale Business Logic işleyicisi gerçekleştir.
Saklı yordam tabanlı çözümleyici ve com tabanlı çözümleyici. Daha fazla bilgi için, bkz. Özel çakışma Çözücü birleştirme makalesi gerçekleştir.
İstenen çözümleyici zaten kayıtlı olup olmadığını belirlemek için yürütmek sp_enumcustomresolvers (Transact-sql)herhangi bir veritabanı üzerinde yayımcı. Bu dağıtımcı veya bilgi için dağıtımcı kayıtlı her iş mantığı işleyicisi yönetilen derleme kayıtlı her com tabanlı çözümleyici sınıf tanımlayıcısı (CLSID) yanı sıra özel çözümleyici açıklamasını görüntüler.
İstenen özel çözümleyici zaten kayıtlı değil, idam sp_registercustomresolver (Transact-sql)at dağıtımcı. Çözümleyici adını belirtmek @ article_resolver; business logic işleyicisi için derleme kolay adı budur. com tabanlı çözümleyiciler için CLSID değerini dll dosyasını belirtmek @ resolver_clsidve iş mantığı işleyicisi için değeri belirtmeniz trueiçin @ is_dotnet_assembly, için derleme adı @ dotnet_assembly_name, geçersiz kılar sınıf tam nitelikli adını BusinessLogicModuleiçin @ dotnet_class_name.
[!NOT]
Iş mantığı işleyici derleme birleştirme Aracısı yürütülebilir dosyası ile aynı dizinde dağıtılan değil, uygulama ile aynı dizinde, zaman uyumlu olarak Birleştirme Aracısı başlar ya da genel derleme önbelleğine (gac) için derleme adı ile tam yolunu belirtmeniz gerekiyor @ dotnet_assembly_name.
Çözümleyici bir com tabanlı çözümleyici ise:
Itme abonelikleri dağıtımcı veya çekme abonelikleri için abone özel çözümleyici dll kopyalayın.
[!NOT]
Microsoftözel çözümleyiciler bulunabilir C:\Program Files\Microsoft SQL Server\110\com dizin.
Regsvr32.exe aracı, işletim sistemiyle özel çözümleyici dll kaydetmek için kullanın. Örneğin, aşağıdaki komut isteminden yürütme kaydeden SQL ServerAdditive çakışma çözümleyici:
regsvr32 ssradd.dll regsvr32 ssradd.dll
Çözümleyici bir iş mantığı işleyicisi ise, derleme birleştirme Aracısı yürütülebilir (replmerg.exe), aynı klasörde Birleştirme aracı çağıran bir uygulama ile aynı klasörde veya belirtilen klasöre dağıtmak @ dotnet_assembly_name parametresi adım 3.
[!NOT]
Birleştirme Aracısı yürütülebilir varsayılan yükleme konumu C:\Program Files\Microsoft SQL Server\110\com
Özel bir çözümleyici birleştirme makale tanımlarken belirtmek için
Özel çakışma çözümleyici kullanmayı planlıyorsanız, oluşturun ve yukarıdaki yordamı kullanarak çözümleyici kaydetmek.
Yayımcı tarafında idam sp_enumcustomresolvers (Transact-sql)ve istenen özel çözümleyici adını not alın değeri sonuç kümesi alan.
Yayını veritabanı üzerinde Yayımcı tarafında idam yürütmesp_addmergearticle (Transact-sql). Adım 2 için çözümleyici adını belirtmek @ article_resolver ve özel çözümleyici kullanılarak giriş gerekli @ resolver_info parametresi. Saklı yordam tabanlı özel çözümleyiciler için @ resolver_info saklı yordam adı. Çözümleyiciler tarafından sağlanan için gerekli giriş hakkında daha fazla bilgi için Microsoftbakın Microsoft com tabanlı çözümleyiciler.
Belirtin veya varolan bir birleştirme makale için özel bir çözümleyici değiştirmek için
Bir makale için özel bir çözümleyici tanımlanan olmadığını belirlemek veya çözümleyici adını almak için idam eşdeğerdirsp_helpmergearticle (Transact-sql). Makale için tanımlanan özel bir çözümleyici ise, onun adı görüntülenir article_resolver alan. Çözümleyici için sağlanan herhangi bir girdi görüntülenir resolver_info sonuç kümesi alan.
Yayımcı tarafında idam sp_enumcustomresolvers (Transact-sql)ve istenen özel çözümleyici adını not alın değeri sonuç kümesi alan.
Yayını veritabanı üzerinde Yayımcı tarafında idam sp_changemergearticle (Transact-sql). Değeri belirtmeniz article_resolver, için iş mantığı işleyicileri için tam yol dahil @ özellik, adım 2'den istenen özel çözümleyici adını @ değeri.
Özel çözümleyici için gerekli herhangi bir girişi değiştirmek için idam sp_changemergearticle (Transact-sql)tekrar. Değeri belirtmeniz resolver_info için @ özellik ve giriş için özel çözümleyici için gerekli @ değeri. Saklı yordam tabanlı özel çözümleyiciler için @ resolver_info saklı yordam adı. Gerekli giriş hakkında daha fazla bilgi için bkz: Microsoft com tabanlı çözümleyiciler.
Özel çakışma çözümleyici kaydını silmek için
Yayımcı tarafında idam sp_enumcustomresolvers (Transact-sql)ve kaldırmak için özel çözümleyici adını not alın değeri sonuç kümesi alan.
İdam sp_unregistercustomresolver (Transact-sql)at dağıtımcı. Özel çözümleyici için adım 1'de belirtilen tam adını belirtmek @ article_resolver.
Örnekler (Transact-SQL)
Bu örnek, yeni bir makale oluşturur ve belirleyen bir SQL Serverortalamasını çakışma çözücü ortalamasını hesaplamak için kullanılan BirimFiyat çakışmaları oluştuğunda sütun.
DECLARE @publication AS sysname;
DECLARE @article AS sysname;
SET @publication = 'AdvWorksSalesOrdersMerge';
SET @article = 'Products';
EXEC sp_addmergearticle
@publication = @publication,
@article = @article,
@source_object = @article,
@article_resolver = 'Microsoft SQL Server Averaging Conflict Resolver',
@resolver_info = 'UnitPrice';
GO
Bu örnek kullanarak belirtmek üzere bir makaleyi değiştirir SQL ServerAdditive çakışma çözümleyici toplamını hesaplamak için SiparişBirimleri çakışmaları oluştuğunda sütun.
DECLARE @publication AS sysname;
DECLARE @article AS sysname;
SET @publication = 'AdvWorksSalesOrdersMerge';
SET @article = 'Products';
EXEC sp_changemergearticle
@publication = @publication,
@article = @article,
@property='article_resolver',
@value='Microsoft SQL Server Additive Conflict Resolver';
EXEC sp_changemergearticle
@publication = @publication,
@article = @article,
@property='resolver_info',
@value='UnitsOnOrder';
GO
[Top]
Ayrıca bkz.
Kavramlar
Gelişmiş birleştirme çoğaltma çakışma algılaması ve Çözümlemesi