Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu konuda, SQL Server Management Studio veya Transact-SQL kullanarak SQL Server'da bir birleştirme makale çözümleyicisi belirtme işlemi açıklanmaktadır.
Öneriler
Birleştirme çoğaltması aşağıdaki makale çözümleyici türlerine izin verir:
Varsayılan çözümleyici. Varsayılan çözümleyicinin davranışı, aboneliğin istemci aboneliği mi yoksa sunucu aboneliği mi olduğuna bağlıdır. Abonelik türünü belirtme hakkında daha fazla bilgi için bkz. Birleştirme Abonelik Türü ve Çakışma Çözümleme Önceliği Belirtme (SQL Server Management Studio).
Yazdığınız özel çözümleyici, iş mantığı işleyicisi (yönetilen kodda yazılmış) veya özel COM tabanlı çözümleyici olabilir. Daha fazla bilgi için bkz. Gelişmiş Birleştirme Çoğaltma Çakışması Algılama ve Çözümleme. Çakışan satırlara ek olarak, çoğaltılan her satır için yürütülen özel bir iş mantığı uygulamanız gerekiyorsa, Birleştirme Makalesi için İş Mantığı İşleyicisi Uygulama konusuna bakın.
Microsoft SQL Server'a dahil edilen standart bir COM tabanlı çözümleyici.
Varsayılan çözümleyici dışında bir çözümleyici kullanmak istiyorsanız, çözümleyiciyi Birleştirme Aracısı'nın çalıştığı bilgisayara kopyalamanız ve kaydetmeniz gerekir (eğer bir iş mantığı işleyicisi kullanıyorsanız, o da Yayımcıda kaydedilmiş olmalıdır). Birleştirme Aracısı şu konumda çalışır:
İtme aboneliği için Dağıtıcı
Çekme aboneliği abonesi
Web eşitlemesi kullanan bir çekme aboneliği için Microsoft Internet Information Services (IIS) sunucusu
SQL Server Management Studio'yu kullanma
Çözümleyici kaydedildikten sonra, makalenin, Yeni Yayın Sihirbazı'nda ve Yayın Özellikleri - <Yayın> iletişim kutusunda bulunan Makale Özellikleri - <Makale> iletişim kutusunun Çözümleyici sekmesinde çözümleyiciyi kullanması gerektiğini belirtin. Sihirbazı kullanma ve iletişim kutusuna erişme hakkında daha fazla bilgi için bkz. Yayın Oluşturma ve Yayın Özelliklerini Görüntüleme ve Değiştirme.
Çözümleyici belirtmek için
Yeni Yayın Sihirbazı'nın Makaleler sayfasında veya Yayın Özellikleri - <Yayın> iletişim kutusunda bir tablo seçin.
Makale Özellikleri'ne ve ardından Vurgulanan Tablo Makalesinin Özelliklerini Ayarla'ya tıklayın.
Makale Özellikleri - <Makale> sayfasında Çözümleyici sekmesine tıklayın.
Özel çözümleyici kullan 'ı (Dağıtımcıya kayıtlı) seçin ve listede çözümleyiciye tıklayın.
Çözümleyici giriş gerektiriyorsa (sütun adı gibi), çözümleyicinin gerektirdiği bilgileri girin metin kutusunda belirtin.
Tamam'ı seçin.
Çözümleyici gerektiren her makale için bu işlemi yineleyin.
Transact-SQL Kullanımı
Özel çakışma çözümleyicisini kaydetmek için
Kendi özel çakışma çözümleyicinizi kaydetmeyi planlıyorsanız aşağıdaki türlerden birini oluşturun:
İş mantığı işleyicisi olarak yönetilen kod tabanlı çözümleyici. Daha fazla bilgi için bkz. Birleştirme Makaleleri için İş Mantığı İşleyicisi Oluşturma.
Saklı yordam tabanlı çözümleyici ve COM tabanlı çözümleyici. Daha fazla bilgi için bkz. Birleştirme Makalesi için Özel Çakışma Çözümleyicisi Uygulama.
İstenen çözümleyicinin zaten kayıtlı olup olmadığını belirlemek için, herhangi bir veritabanında Publisher'da sp_enumcustomresolvers (Transact-SQL) yürütebilirsiniz. Bu, özel çözümleyicinin açıklamasının yanı sıra Dağıtımcı'da kayıtlı her COM tabanlı çözümleyici için sınıf tanımlayıcısını (CLSID) veya Dağıtımcı'da kayıtlı her iş mantığı işleyicisi için yönetilen derlemedeki bilgileri görüntüler.
İstenen özel çözümleyici henüz kayıtlı değilse Dağıtımcı'da sp_registercustomresolver (Transact-SQL) yürütebilirsiniz. @article_resolver çözümleyici için bir ad belirtin; bir iş mantığı işleyicisi için bu, derlemenin kolay adıdır. COM tabanlı çözümleyiciler için, @resolver_clsid için DLL'nin CLSID değerini belirtin ve bir iş mantığı işleyicisi için @is_dotnet_assembly için true değerini, @dotnet_assembly_name derlemesinin adını ve @dotnet_class_name için geçersiz kılan BusinessLogicModule sınıfın tam adını belirtin.
Uyarı
Bir iş mantığı işleyici derlemesi, Birleştirme Aracısı çalıştırılabilir dosyasıyla aynı dizinde, Birleştirme Aracısı'nı senkron başlatan uygulamayla aynı dizinde veya genel derleme önbelleğinde (GAC) dağıtılmamışsa, @dotnet_assembly_name için derleme adıyla birlikte tam yolu belirtmeniz gerekir.
Çözümleyici COM tabanlı bir çözümleyiciyse:
Özel çözümleyici DLL'sini gönderim abonelikleri için Dağıtımcı'ya veya çekme abonelikleri için Abone'ye kopyalayın.
Uyarı
Microsoft özel çözümleyicileri sürücü>:\Program Files\Microsoft SQL Server\nnn\COM dizininde bulunabilir<.
özel çözümleyici DLL'sini işletim sistemine kaydetmek için regsvr32.exe kullanın. Örneğin, komut isteminden aşağıdakileri yürütmek SQL Server Ekleme Çakışma Çözümleyicisi'ni kaydeder:
regsvr32 ssradd.dll
Çözümleyici bir iş mantığı işleyicisiyse, derlemeyi Birleştirme Aracısı yürütülebilir dosyası (replmerg.exe) ile aynı klasöre, Birleştirme Aracısı'nı çağıran bir uygulamayla aynı klasöre veya 3. adımda @dotnet_assembly_name parametresi için belirtilen klasöre dağıtın.
Uyarı
Birleştirme Aracısı yürütülebilir dosyasının varsayılan yükleme konumu sürücü>:\Program Files\Microsoft SQL Server\nnn\COM şeklindedir<.
Birleştirme makalesi tanımlarken özel çözümleyici belirtme
Özel çakışma çözümleyicisi kullanmayı planlıyorsanız yukarıdaki yordamı kullanarak çözümleyiciyi oluşturun ve kaydedin.
Publisher'da sp_enumcustomresolvers (Transact-SQL) yürütür ve sonuç kümesinin değer alanında istenen özel çözümleyicinin adını not edin.
Publisher'daki yayın veritabanında sp_addmergearticle (Transact-SQL) komutunu yürütün. @article_resolver için 2. adımdaki çözümleyicinin adını ve @resolver_info parametresini kullanarak özel çözümleyiciye gerekli girişleri belirtin. Saklı yordam tabanlı özel çözümleyiciler için @resolver_info saklı yordamın adıdır. Microsoft tarafından sağlanan çözümleyiciler için gerekli girişler hakkında daha fazla bilgi için bkz. Microsoft COM-Based Çözümleyicileri.
Var olan birleştirme makalesi için özel çözümleyici belirtme veya değiştirme
Bir makale için özel çözümleyici tanımlandığını belirlemek veya çözümleyicinin adını almak için sp_helpmergearticle yürüt (Transact-SQL). Makale için tanımlanmış bir özel çözümleyici varsa, adı article_resolver alanında görüntülenir. Çözümleyiciye sağlanan tüm girişler, sonuç kümesinin resolver_info alanında görüntülenir.
Publisher'da sp_enumcustomresolvers (Transact-SQL) yürütür ve sonuç kümesinin değer alanında istenen özel çözümleyicinin adını not edin.
Yayın veritabanında, Publisher'da sp_changemergearticle (Transact-SQL) komutunu çalıştırın. @property için iş mantığı işleyicilerinin tam yolu ve @value için 2. adımdaki istenen özel çözümleyicinin adı da dahil olmak üzere article_resolver değerini belirtin.
Özel çözümleyici için gerekli girişleri değiştirmek için sp_changemergearticle (Transact-SQL) yeniden yürütür. @property için resolver_info değeri ve @value için özel çözümleyiciye gerekli olan herhangi bir girişi belirtin. Saklı yordam tabanlı özel çözümleyiciler için @resolver_info saklı yordamın adıdır. Gerekli girişler hakkında daha fazla bilgi için bkz. Microsoft COM-Based Çözümleyicileri.
Özel çakışma çözümleyicinin kaydını kaldırma
Publisher'da sp_enumcustomresolvers (Transact-SQL) yürütür ve sonuç kümesinin değer alanında kaldırılacak özel çözümleyicinin adını not edin.
Dağıtımcıda sp_unregistercustomresolver (Transact-SQL) komutunu yürüt. @article_resolver için 1. adımdaki özel çözümleyicinin tam adını belirtin.
Örnekler (Transact-SQL)
Bu örnek yeni bir makale oluşturur ve çakışmalar oluştuğunda UnitPrice sütununun ortalamasını hesaplamak için SQL Server Ortalama Çakışma Çözümleyicisi'nin kullanılacağını belirtir.
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, çakışmalar oluştuğunda UnitsOnOrder sütununun toplamını hesaplamak için SQL Server EklemeLi Çakışma Çözümleyicisi'ni kullanarak bir makaleyi belirtecek şekilde değiştirir.
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