sp_changemergearticle (Transact-sql)
Birleştirme makale özelliklerini değiştirir. Bu saklı yordam, yayını veritabanı üzerinde yayımcı adresindeki yürütülür.
Transact-SQL Sözdizim Kuralları
Sözdizimi
sp_changemergearticle [ @publication = ] 'publication'
, [ @article = ] 'article'
[ , [ @property = ] 'property' ]
[ , [ @value = ] 'value' ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
Bağımsız değişkenler
@ publication ='publication'
Makale bulunduğu Yayını addır. publicationise sysname, hiçbir varsayılan ile.@article='article'
Değiştirmek için makaleyi addır. articleise sysname, hiçbir varsayılan ile.@property='property'
Verilen yazı ve yayın için değiştirmek için özellik olduğunu. propertyise nvarchar(30), ve tablodaki değerlerden birini listelenebilir.@value='value'
Belirtilen özellik için yeni değerdir. valueise nvarchar(1000), ve tablodaki değerlerden birini listelenebilir.Bu tablo makaleleri ve bu özelliklerin değerlerini özelliklerini açıklar.
Özellik
Değerleri
Açıklama
allow_interactive_resolver
TRUE
Makale etkileşimli çözümleyici kullanımını etkinleştirir.
yanlış
Makale etkileşimli çözümleyici kullanımını devre dışı bırakır.
article_resolver
Makaleyi özel çözümleyici. Yalnızca bir tablo makale için geçerlidir.
check_permissions (bit eşlem)
0x00
Tablo düzeyi izinleri denetlenir.
gerçekleşen
Abone tarafında yapılan INSERT deyimleri Yayımcı tarafında uygulanan önce tablo düzeyi izinleri yayımcı sırasında denetlenir.
0x20
Abone tarafında yapılan update deyimleri Yayımcı tarafında uygulanan önce tablo düzeyi izinleri yayımcı sırasında denetlenir.
0x40
delete deyimleri abone adresindeki Yayımcı tarafında uygulanan önce tablo düzeyi izinleri yayımcı sırasında denetlenir.
column_tracking
TRUE
Sütun düzeyinde izleme açar. Yalnızca bir tablo makale için geçerlidir.
NotSütun düzeyinde izleme, birden çok 246 sütunlarla yayımlama tabloları kullanılamaz.yanlış
Sütun düzeyinde izleme devre dışı bırakır ve satır düzeyinde çakışma algılama bırakır. Yalnızca bir tablo makale için geçerlidir.
compensate_for_errors
TRUE
Eşitleme sırasında hataları ortaya çıktığında compensating eylemleri gerçekleştirilir. Daha fazla bilgi için bkz: sp_addmergearticle.
yanlış
Compensating eylemleri, varsayılan davranış olduğu yapılmaz. Daha fazla bilgi için bkz: sp_addmergearticle.
ÖnemliEtkilenen satır verileri yakınsama dışında hataları gidermek en kısa sürede gibi görünebilir, ancak değişiklikleri uygulanabilir ve veri yakınsama.Bir makale kaynak tablo zaten başka bir yayında, sonra değeri yayımlanır Eğer compensate_for_errors her iki makaleler için aynı olması gerekir.creation_script
Makaleyi abonelik veritabanı oluşturmak için kullanılan bir isteğe bağlı makale şema komut dosyası adını ve yolu.
delete_tracking
TRUE
delete deyimleri çoğaltılır, hangi varsayılan davranıştır.
yanlış
delete deyimleri değil çoğaltılır.
ÖnemliAyar delete_tracking için yanlış sonuçları yakınsaması ve Silinen satırlar el ile kaldırılması gerekir.Açıklama
Makaleyi tanımlayıcı girdisi.
destination_owner
Abonelik veritabanı değilse nesnenin sahibi adı dbo.
identity_range
bigintMadde varsa, yeni kimlik değerleri atarken kullanılacak aralığı boyutunu belirtir identityrangemanagementoption için auto veya auto_identity_rangeidentityrangemanagementoption ayarlamak gerçek. Yalnızca tablo makale için geçerlidir. Daha fazla bilgi için bkz: "birleştirme çoğaltma" bölümünde Kimlik sütunları çoğaltma.
IdentityRangeManagementOption
El ile
Otomatik kimlik aralığı yönetimi devre dışı bırakır. Kimlik sütunları el ile kimlik aralığı işleme etkinleştirmek için not for REPLICATION kullanarak işaretler. Daha fazla bilgi için, bkz. Kimlik sütunları çoğaltma.
hiçbiri
Tüm kimlik aralığı yönetimi devre dışı bırakır.
logical_record_level_conflict_detection
TRUE
Eğer herhangi bir mantıksal kaydında yapılan değişiklikler bir çakışma algılandı. Gerektiren logical_record_level_conflict_resolution şekilde gerçek.
yanlış
Varsayılan çakışma algılama kullanılan tarafından belirtilen column_tracking.
logical_record_level_conflict_resolution
TRUE
Tüm kazanan mantıksal kaydı kaybeden mantıksal kaydın üzerine yazar.
yanlış
Kazanan satırlar mantıksal kayıt sınırlı değil.
partition_options
0
Makale için süzme statiktir ya veri her bölümü için benzersiz bir alt verim yani değil bir "örtüşen" Bölüm.
1
Bölümleri örtüşen ve Abone tarafında yapılan dml güncelleştirmeleri bir satırın ait olduğu bölümü değiştiremezsiniz.
2
Makale için süzme olmayan örtüşen bölümleri verir, ancak birden çok aboneleri aynı bölüm alabilir.
3
Makale için süzme her abonelik için benzersiz olmayan örtüşen bölümleri verir.
NotBir değer belirtirseniz, 3 için partition_options, yalnızca tek bir abonelik her bölüm için bu makalede veri olabilir.Varolan bir aboneliği, ikinci bir abonelik içinde varolan bir aboneliği aynı bölüme yeni abonelik filtreleme kriteri çözümler oluşturduysanız, bırakılır.pre_creation_command
hiçbiri
Tablo zaten abone tarafında varsa, hiçbir işlem yapılmaz.
Sil
Alt filtre where yan tümcesinde dayalı bir delete verir.
bırak
Yeniden oluşturmayı önce tablo düşünceye.
kesecek
Hedef Tablo keser.
processing_order
intbirleştirme yayını makaleleri işlem sırasını gösterir.
pub_identity_range
bigintSunucu abonelik ile abone makaleyi varsa ayrılan aralığı boyutunu belirtir identityrangemanagementoption için auto veya auto_identity_rangeidentityrangemanagementoption ayarlamak gerçek. Bu kimlik aralığı republishing Abone kendi abonelerine tahsis etmek için ayrılmıştır. Yalnızca tablo makale için geçerlidir. Daha fazla bilgi için bkz: "birleştirme çoğaltma" bölümünde Kimlik sütunları çoğaltma.
Published_in_tran_pub
TRUE
Makale ayrıca işlem yayında yayımlanır.
yanlış
Makale işlem yayında da yayınlanmadı.
resolver_info
Özel bir çözümleyici tarafından gerekli olan ek bilgileri belirtmek için kullanılır. Bazı Microsoftçözümleyiciler çözümleyici giriş olarak sağlanan bir sütun gerektirir. resolver_info olan nvarchar(255), null varsayılan. Daha fazla bilgi için, bkz. Microsoft com tabanlı çözümleyiciler.
schema_option (bit eşlem)
Daha fazla bilgi için bu konunun ilerleyen bölümlerinde açıklamalar bölümüne bakın.
0x00
Komut dosyası Snapshot Aracısı tarafından devre dışı bırakır ve sağlanan komut dosyası kullanan creation_script.
0x01
Nesne oluşturma komut dosyası (create table, create procedure vb.) oluşturur.
gerçekleşen
Karşılık gelen kümelenmiş bir dizin oluşturur.
0x20
Temel veri türleri abone için kullanıcı tanımlı veri türleri dönüştürür. Ne zaman orada bir kullanıcı tanımlı türü (udt) sütunundaki onay veya default kısıtlama udt sütun birincil anahtarın parçası değilse veya hesaplanmış bir sütun udt sütun başvuruyorsa, bu seçenek kullanılamaz.
0x40
Karşılık gelen kümelendirilmemiş dizinler oluşturur.
0x80
Birincil anahtarlar üzerinde bildirilen bilgi tutarlılığı içerir.
0x100
Kullanıcı Tetikleyiciler, bir tablo makale tanımlanmışsa çoğaltır.
0x200
FOREIGN key kısıtlamaları çoğaltır. Başvurulan tabloyu yayını bir parçası değilse, tüm yabancı anahtar kısıtlamaları yayımlanmış bir tablo çoğaltılmaz.
0x400
check kısıtlamaları çoğaltır.
0x800
Varsayılanları çoğaltır.
0x1000
Sütun düzeyinde alfabe çoğaltır.
0x2000
Genişletilmiş özellikler yayımlanmış makale kaynak nesneyle ilişkili çoğaltır.
0x4000
Benzersiz anahtarlar bir tablo makale tanımlanmışsa çoğaltır.
0x8000
alter table deyimleri kısıtlamaları komut dosyası oluşturur.
0x10000
Böylece eşitleme sırasında kısıtlamalar zorlanmaz check kısıtlamaları not for REPLICATION çoğaltır.
0x20000
Eşitleme sırasında kısıtlamalar zorlanmaz böylece FOREIGN key kısıtlamaları not for REPLICATION çoğaltır.
0x40000
Bölümlenmiş tablo veya dizin ile ilişkili filegroups çoğaltır.
0x80000
Bölümlenmiş bir tablo için bölüm düzenini çoğaltır.
0x100000
Bölümlenmiş bir dizin için bölüm düzenini çoğaltır.
0x200000
Çoğaltır, istatistik tablosu.
0x400000
Varsayılan bağlar çoğaltır
0x800000
Bağlar çoğaltır kural
0x1000000
Tam metin dizini çoğaltır
0x2000000
xml şema koleksiyonları bağlı xmlsütunlar yinelenmez.
0x4000000
Dizinler üzerinde çoğaltır xmlsütun.
0x8000000
Zaten mevcut şemalar abone oluşturun.
0x10000000
Dönüştüren xmlsütunları ntextabone.
0x20000000
Dönüştürür büyük nesne veri türleri (nvarchar(max), varchar(max), ve varbinary(max)) içinde başlandı SQL Server 2005, üzerinde desteklenen veri türleri için SQL Server 2000.
0x40000000
İzinleri çoğaltır.
0x80000000
Yayını bir parçası olan nesneleri bağımlılıkları bırakma girişiminde bulunuldu.
0x100000000
Tarih belirtilmemişse FILESTREAM özniteliği çoğaltmak için bu seçeneği kullanın varbinary(max)sütun. Tablolara çoğaltıyorsanız bu seçeneği belirtmezseniz SQL Server 2005aboneleri. Tabloları FILESTREAM sütunları çoğaltılıyor SQL Server 2000aboneleri desteklenmiyor, bu şema seçeneği ayarlanma şekli ne olursa olsun. Ilgili seçeneği görmek 0x800000000.
0x200000000
Tarih ve Saat veri türleri dönüştürür (date, time, datetimeoffset, ve datetime2), tanıştırmak içinde SQL Server 2008önceki sürümlerinde desteklenen veri türleri için SQL Server.
0x400000000
Veri ve dizinler sıkıştırma seçeneği çoğaltır. Daha fazla bilgi için, bkz. Veri Sıkıştırma.
0x800000000
Üzerinde abone kendi filegroup FILESTREAM veri saklamak için bu seçeneği ayarlayın. Bu seçeneği ayarlarsanız, varsayılan filegroup FILESTREAM veri saklanır. Çoğaltma filegroups oluşturmaz; Bu nedenle, bu seçeneği ayarlarsanız, abone adresindeki anlık görüntüsünü uygulamadan önce dosya grubu oluşturmanız gerekir. Anlık görüntüsünü uygulamadan önce nesneleri oluşturma hakkında daha fazla bilgi için bkz: Anlık uygulanmadan önce ve sonra komut dosyalarını yürütme.
Ilgili seçeneği görmek 0x100000000.
0x1000000000
Ortak dil çalışma zamanı (clr) kullanıcı tanımlı türler (UDTs) dönüştürür varbinary(max), çalıştıran aboneleri türü udt sütunları çoğaltılan böylece SQL Server 2005.
0x2000000000
Dönüştüren hierarchyidveri türü varbinary(max)böylece türü sütunları hierarchyid, çalıştıran aboneleri çoğaltılan SQL Server 2005. Nasıl kullanılacağı hakkında daha fazla bilgi için hierarchyidyinelenen tablodaki sütunları görmek hierarchyid (Transact-sql).
0x4000000000
Filtre uygulanmış herhangi bir tabloyu dizinlerde çoğaltır. Filtre uygulanmış dizinler hakkında daha fazla bilgi için bkz: Filtre uygulanmış dizinler oluşturma.
0x8000000000
Dönüştüren geographyve geometryveri türleri varbinary(max)çalışmakta abonelere bu tür sütunları çoğaltılan böylece SQL Server 2005.
0x10000000000
Türü sütun dizinlerde çoğaltır geographyve geometry.
NULL
Sistem otomatik-geçerli şema seçeneği makale oluşturur.
durumu
etkin
Tablo yayımlamak için ilk işleme komut dosyasını çalıştırın.
Unsynced
Sonraki tablo yayımlamak için ilk işleme komut çalıştırıldığı zaman Snapshot aracı çalışır.
stream_blob_columns
TRUE
Bir veri akışı optimizasyonu büyük ikili nesne sütunları çoğaltılıyor kullanılır. Ancak, mantıksal kayıtları gibi bazı birleştirme çoğaltma işlevlerini hala akışı optimizasyon kullanılmasını engelleyebilirsiniz. stream_blob_columnsFILESTREAM etkin olduğunda true olarak ayarlanır. Bu en iyi şekilde yapmak ve bellek kullanımını azaltmak için FILESTREAM veri çoğaltmasını sağlar. FILESTREAM BLOB akış kullanmak için makaleleri tablo zorlamak için stream_blob_columnsiçin yanlış.
ÖnemliBu bellek optimizasyonu etkinleştirilmesi eşitleme sırasında Birleştirme Aracısı performansını zarar olabilir.Bu seçenek, yalnızca megabaytlık veri içeren sütunları çoğaltılıyor olduğunda kullanılmalıdır.yanlış
Optimizasyon büyük ikili nesne sütunları çoğaltılıyor kullanılır.
subscriber_upload_options
0
Abone ile istemci abonelik sırasında yapılan güncelleştirmeleri kısıtlama olmaksızın; değişiklikler için yayımcı karşıya. Bu özelliği değiştirme gerektirebilir varolan aboneleri yeniden.
1
Değişiklikleri abone ile istemci abonelik sırasında izin verilir, ancak yayımcı için karşıya.
2
Değişiklikleri abone ile istemci abonelik sırasında izin verilmez.
subset_filterclause
Yatay süzmek belirten where yan tümcesi. Yalnızca bir tablo makale için geçerlidir.
ÖnemliPerformansı düşürmemek için işlev Parametreli satır filtre yan tümceleri, sütun adları gibi uyguladığınız değil öneririz LEFT([MyColumn]) = SUSER_SNAME().Eğer sen kullanma host_name bir filtre yan tümcesi ve geçersiz değer kullanarak veri türleri dönüştürme olabilir DÖNÜŞTÜRMEK.Bu durum için en iyi yöntemler hakkında daha fazla bilgi için bkz: Bölüm "host_name() değeri geçersiz kılma" in Parametreli satır süzgeçleri.eşik
Yüzde değeri çalıştıran aboneleri için kullanılan SQL Server Compactveya önceki sürümleri SQL Server. eşik ne zaman birleştirme aracı yeni bir kimlik aralığı atar denetler. Eşik içinde belirtilen değerler yüzdesi kullanıldığında, Birleştirme Aracısı yeni bir kimlik aralığı oluşturur. Ne zaman kullanılan identityrangemanagementoption ayarlanır auto veya auto_identity_rangeidentityrangemanagementoption ayarlanır gerçek. Yalnızca tablo makale için geçerlidir. Daha fazla bilgi için bkz: "birleştirme çoğaltma" bölümünde Kimlik sütunları çoğaltma.
verify_resolver_signature
1
Güvenilir bir kaynaktan olup olmadığını belirlemek için özel bir çözümleyici sayısal imza doğrulanır.
0
Güvenilir bir kaynaktan olup olmadığını belirlemek için özel bir çözümleyici sayısal imza doğrulanmadı.
NULL (varsayılan)
İçin desteklenen değerler listesini döndürür property.
@ force_invalidate_snapshot = force_invalidate_snapshot
Bu saklı yordam tarafından gerçekleştirilen eylemi varolan bir anlık görüntüsünü geçersiz kılabilir kabul eder. force_invalidate_snapshot olan bir bit, varsayılan 0.0 geçersiz olduğu anlık görüntüsünü birleştirme makale değişiklikler neden olmamasını belirtir. Saklı yordam değiştirmek yeni bir anlık görüntü gerektirecek algılarsa, bir hata oluşur ve değişiklik yapılmaz.
1 anlamı geçersiz olduğu anlık görüntüsünü birleştirme makale değişiklikler neden olabilir ve yeni bir anlık görüntü gerektirecek varolan abonelikleri varsa varolan anlık görüntü geçersiz olarak işaretlenmesi ve oluşturulan yeni bir anlık görüntü için izni verir.
Özellikleri için açıklamalar bölümüne bakın, değiştiğinde, yeni bir anlık görüntü oluşturulmasını gerektirir.
@ force_reinit_subscription = force_reinit_subscription
Bu saklı yordam tarafından gerçekleştirilen eylemi varolan abonelikleri yeniden gerektirdiğine dikkat eder. force_reinit_subscriptionolan bir bit, varsayılan 0.0 birleştirme makale değişiklikleri abonelik yeniden neden olmaz belirtir. Saklı yordam değiştirmek varolan abonelikleri yeniden gerektirecek algılarsa, bir hata oluşur ve değişiklik yapılmaz.
1 yani birleştirme makale değişiklikler neden yeniden, varolan abonelikleri ve abonelik reinitialization yapılmasına izin verir.
Özellikleri için açıklamalar bölümüne bakın, değiştiğinde, tüm mevcut abonelikler yeniden gerektirir.
Dönüş Kodu Değerleri
0 (başarılı) veya 1 (hata)
Açıklamalar
sp_changemergearticle birleştirme çoğaltması kullanılır.
Çünkü sp_changemergearticle kullanarak başlangıçta belirtilmiş makale özelliklerini değiştirmek için kullanılan sp_addmergearticle, bakın sp_addmergearticle bu özellikleri hakkında ek bilgi için.
Yeni bir anlık görüntü oluşturulan gerekir aşağıdaki özellikleri değiştirme ve değeri belirtmeniz gerekir 1 için force_invalidate_snapshotparametresi:
check_permissions
column_tracking
destination_owner
pre_creation_cmd
schema_options
subset_filterclause
Aşağıdaki özellikleri değiştirmek varolan gerektirir abonelikleri yeniden ve değeri belirtmeniz gerekir 1 için force_reinit_subscriptionparametresi:
check_permissions
column_tracking
destination_owner
IdentityRangeManagementOption
subscriber_upload_options
subset_filterclause
3 İçin bir değer belirtirken partition_options, meta verileri temizlenen her Birleştirme Aracısı çalıştırır ve bölümlenmiş anlık daha hızlı bir şekilde sona eriyor. Bu seçeneği kullanırken bölümlenmiş anlık görüntü abone etkinleştirme talep düşünmelisiniz. Daha fazla bilgi için, bkz. Anlık görüntüler için birleştirme yayınları ile parametreli süzgeçleri.
Ayarlarken column_tracking özelliği, tablo diğer birleştirme yayınlarda önceden yayınlanmışsa izleme sütun olmalıdır bu tabloyu temel alan varolan makaleleri tarafından kullanılan değerle aynı. Bu parametre, yalnızca tablo makaleleri için özeldir.
Aynı temel tabloyu temel alan makaleleri birden çok yayınları yayımlarsanız, değişen delete_tracking özelliği veya compensate_for_errors bir makale özelliği aynı tabloyu temel alan diğer makalelere yapılan aynı değişikliği neden olur.
Birleştirme işlemi tarafından kullanılan Publisher giriş/kullanıcı hesabının doğru tablo izinleri yoksa, geçersiz değişiklikleri çakışma kaydedilir.
Değerini değiştirirken schema_option, sistem düzeyinde bir güncelleştirme gerçekleştirmez. Bu demektir ki sen ne zaman schema_option kullanarak sp_changemergearticle, varolan biti ayarları kapalı. Varolan ayarları korumak için gerçekleştirmeniz &(Bitwise ve) ayarladığınız değer geçerli değeri arasındaki schema_option, hangi tespit yürüterek eşdeğerdirsp_helpmergearticle.
Geçerli şema seçeneği tablosu
Aşağıdaki tabloda verilen açıklar schema_option değerleri, yazı tipine bağlı.
Makale türü |
Şema seçenek değerleri |
---|---|
işlev şema yalnızca |
0x01 ve 0x2000 |
Dizin oluşturulmuş görünüm şema |
0x01, 0x040, 0x0100, 0x2000, 0x40000, 0x1000000, and 0x200000 |
yalnızca yordam şema |
0x01 ve 0x2000 |
Tablo |
Tüm seçenekler. |
yalnızca görünüm şema |
0x01, 0x040, 0x0100, 0x2000, 0x40000, 0x1000000, and 0x200000 |
Örnek
DECLARE @publication AS sysname;
DECLARE @article AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @article = N'SalesOrderHeader';
-- Enable column-level conflict tracking.
-- Changing this property requires that existing subscriptions
-- be reinitialized and that a new snapshot be generated.
USE [AdventureWorks2012]
EXEC sp_changemergearticle
@publication = @publication,
@article = @article,
@property = N'column_tracking',
@value = N'true',
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
GO
İzinler
Yalnızca üyeleri sysadmin sabit sunucu rolü veya db_owner sabit veritabanı rolü yürütebilirsiniz sp_changemergearticle.
Ayrıca bkz.
Başvuru
yürütmesp_addmergearticle (Transact-sql)
sp_dropmergearticle (Transact-sql)
eşdeğerdirsp_helpmergearticle (Transact-sql)
Çoğaltma depolanan yordamlar (Transact-sql)