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.
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'
Is the name of the publication in which the article exists.publication is sysname, with no default.[ @article=] 'article'
Is the name of the article to change.article is sysname, with no default.[ @property=] 'property'
Is the property to change for the given article and publication.property is nvarchar(30), and can be one of the values listed in the table.[ @value=] 'value'
Is the new value for the specified property.value is nvarchar(1000), and can be one of the values listed in the table.Bu tablo makaleleri ve bu özelliklerin değerlerini özelliklerini açıklar.
Özellik
Değerler
Açıklama
allow_interactive_resolver
TRUE
Makale için bir etkileşimli çözümleyici kullanımını etkinleştirir.
yanlış
Makale için bir etkileşimli çözümleyici kullanımını devre dışı bırakır.
article_resolver
Makale özel çözümleyici.Yalnızca bir tablo makale için geçerlidir.
check_permissions (bit eşlem)
0x00
Tablo düzey izinleri denetlenir.
0x10
Abone tarafında yapılan INSERT deyimleri Yayımcı tarafında uygulanan önce tablo düzey izinleri yayımcı sırasında denetlenir.
0x20 değerli
Abone tarafında yapılan update deyimleri Yayımcı tarafında uygulanan önce tablo düzey izinleri yayımcı sırasında denetlenir.
0x40
delete deyimi abone adresindeki Yayımcı tarafında uygulanan önce tablo düzey izinleri yayımcı sırasında denetlenir.
column_tracking
TRUE
Sütun üzerinde kapatan düzey izleme.Yalnızca bir tablo makale için geçerlidir.
NotSütun düzey izleme, birden çok 246 sütunlarla yayımlama tabloları kullanılamaz.yanlış
Sütun devre dışı bırakır düzey izleme ve yapraklar çakışma algılama satırı düzey.Yalnızca bir tablo makale için geçerlidir.
compensate_for_errors
TRUE
Eşitleme sırasında hata oluştuğunda karşılayan eylemler gerçekleştirilir.Daha fazla bilgi için bkz: sp_addmergearticle.
yanlış
Karşılayan eylemler, varsayılan davranış olduğu yapılmamaktadır.Daha fazla bilgi için bkz: sp_addmergearticle.
ÖnemliEtkilenen satırlardaki verileri hataları gidermek gibi yakınsama yetersiz olması gibi görünse de, değişikliklerin uygulanması ve veri yakınsama.Bir makale kaynak tablo zaten başka bir yayın sonra değeri yayımlanır, compensate_for_errors her iki makaleler için aynı olması gerekir.creation_script
Makaleyi oluşturmak için kullanılan yol ve bir isteğe bağlı makale şema komut dosyası adını abonelik veritabanı.
delete_tracking
TRUE
delete deyimleri yinelenir, 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 Silinmiş satırları el ile kaldırılması gerekir.Açıklama
Tanımlayıcı girdisi için makale.
destination_owner
Nesnenin sahibinin adı abonelik veritabanı, yoksa dbo.
identity_range
bigintmakale varsa, yeni kimlik değerlerini atarken kullanılacak aralık boyutunu belirtir identityrangemanagementoption küme için Otomatik veya auto_identity_range küme için doğru.Tablo makale yalnızca için geçerlidir.Daha fazla bilgi için bkz: "Merge Replication" kısmında Kimlik sütunları çoğaltılıyor.
identityrangemanagementoption
Elle
Otomatik kimlik aralık yönetimi devre dışı bırakır.Kimlik sütunları el ile kimlik aralık işleme etkinleştirmek için çoğaltma için değil kullanarak işaretler.Daha fazla bilgi için bkz: Kimlik sütunları çoğaltılıyor.
Yok
Tüm kimlik aralık yönetimi devre dışı bırakır.
logical_record_level_conflict_detection
TRUE
Değişiklikler içinde herhangi bir yerde yapılırsa çakışma algılandı mantıksal kayıt.Gerektiren logical_record_level_conflict_resolution olması küme için doğru.
yanlış
Varsayılan çakışma algılama kullanılan belirtildiği gibi column_tracking.
logical_record_level_conflict_resolution
TRUE
Tüm kazanan mantıksal kayıt kaybeden mantıksal kaydın üzerine yazar.
yanlış
Kazanan satırlar mantıksal kayıt için zorlanır.
partition_options
0
The filtering for the article either is static or does not yield a unique subset of data for each partition, i.e.an "overlapping" partition.
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 örtüşmeyen 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 bir tek abonelik her bölüm için veri olabilir makale.Varolan bir aboneliği, ikinci bir abonelik filtreleme ölçütü yeni abonelik için varolan bir aboneliği aynı bölüme çözümler oluşturulursa, bırakılır.pre_creation_command
Yok
Tablo zaten abone tarafında Hayır varsa eylem alınır.
Sil
where yan tümce tümce tümcesinde alt küme küme filtre dayalı bir delete verir.
bırak
Yeniden oluşturmayı önce tablo düşünceye.
Kes
Hedef Tablo keser.
processing_order
int bir birleştirme yayın makalelerinde işlem sırasını gösterir.
pub_identity_range
bigintbir sunucu ile bir aboneye tahsis edilen aralık boyutunu belirtir abonelik makale varsa identityrangemanagementoption ayarlamak Otomatik veya auto_identity_range ayarlamak doğru.Bu kimlik aralık republishing abone kendi abonelere tahsis etmek ayrılmış durumda.Tablo makale yalnızca için geçerlidir.Daha fazla bilgi için bkz: "Merge Replication" kısmında Kimlik sütunları çoğaltılıyor.
published_in_tran_pub
TRUE
Makalede ayrıca bir işlem yayınlanır yayın.
yanlış
Makale ayrıca yayımlanmamış bir işlem yayın.
resolver_info
Özel bir çözümleyici tarafından gerekli olan ek bilgileri belirtmek için kullanılır.Some of the Microsoft Resolvers require a column provided as input to the resolver.resolver_info is nvarchar(255), with a default of NULL.Daha fazla bilgi için bkz: Microsoft com tabanlı çözümleyiciler.
schema_option (bit eşlem)
Daha fazla bilgi için bu konunun ilerisinde 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.
0x10
Karşılık gelen kümelenmiş dizin oluşturur.
0x20 değerli
Temel veri türlerini abone adresindeki kullanıcı tanımlı veri türleri dönüştürür.udt sütun parçası ise, kullanıcı tanımlı tür (udt) sütunundaki onay veya varsayılan kısıtlama olduğunda bu seçenek kullanılamaz birincil anahtar, veya hesaplanan sütun udt sütun başvuruyorsa.
0x40
Karşılık gelen kümelenmemiş dizinler oluşturur.
0x80
İçerir bildirilen bilgi tutarlılığına bütünlük birincil anahtarlar üzerinde.
0x100
Kullanıcı Tetikleyiciler üzerinde bir tablo makale tanımlanmışsa çoğaltır.
0x200
YABANCI anahtar kısıtlamaları çoğaltır.Başvurulan tabloyu yayın bir parçası ise, tüm yabancı anahtar kısıtlamaları yayımlanmış bir tablo çoğaltılmaz.
0x400
Denetim kısıtlamalarını çoğaltır.
0x800
Varsayılanları çoğaltır.
0x1000
Sütun - çoğaltırdüzey harmanlama.
0x2000
Genişletilmiş özellikler yayımlanmış makale ile ilişkili çoğaltır kaynak nesne.
0x4000
Benzersiz anahtarlar bir tablo makale tanımlanmışsa çoğaltır.
0x8000
alter table deyimleri zaman kısıtlamaları komut dosyası kullanan kullanan kullanan dosyası oluşturur.
ile
Böylece eşitleme sırasında kısıtlamalar zorlandığı çoğaltma için değil denetim kısıtlamalarını çoğaltır.
0x20000
Böylece eşitleme sırasında kısıtlamalar zorlandığı çoğaltma için değil yabancı anahtar kısıtlamalarını çoğaltır.
0x40000
Bölümlenmiş tablo veya dizin ile ilişkili filegroups çoğaltır.
0x80000
Çoğaltır bölümleme düzeni bölümlenmiş tablo için.
0x100000
Çoğaltır bölümleme düzeni bölümlenmiş dizin için.
0x200000
Çoğaltır tablo istatistikleri.
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ı xml sütunlar yinelenmez.
0x4000000
Dizinler üzerinde çoğaltır xml sütunlar.
0x8000000
Zaten mevcut tüm şemalar üzerinde abone oluşturun.
0x10000000
Dönüştürür xml sütun ntext abone.
0x20000000
Dönüştürür büyük nesne veri türleri (nvarchar(max), varchar(max), ve varbinary(max))'de sunulan SQL Server 2005 üzerinde desteklenen veri türleri için SQL Server 2000.Bu türleri ile nasıl eşleştirildikleri hakkında daha fazla bilgi için bkz: "eşleme yeni veri türleri için önceki sürümler" Bölüm'de sql Server birden çok sürümünü kullanarak bir çoğaltma topolojisi içinde.
0x40000000
İzinleri çoğaltır.
0x80000000
yayın bir parçası olan nesneleri bağımlılıkları bırakma girişimi.
0x100000000
FILESTREAM öznitelik üzerinde belirtilmişse çoğaltmak için bu seçeneği kullanın varbinary(max) sütunlar.Tablolara çoğaltıyorsanız bu seçenek belirtmek SQL Server 2005 aboneleri.FILESTREAM sütunları olan tablo çoğaltma SQL Server 2000 aboneleri desteklenmiyor, olsun nasıl bu şema seçenek küme.İlgili seçeneği görmek 0x800000000.
0x200000000
Tarih ve saat veri türleri dönüştürür (date, time, datetimeoffset, ve datetime2)'de sunulan SQL Server 2008 önceki sürümlerinde desteklenen veri türleri için SQL Server.Bu türleri ile nasıl eşleştirildikleri hakkında daha fazla bilgi için bkz: "eşleme yeni veri türleri için önceki sürümler" Bölüm'de sql Server birden çok sürümünü kullanarak bir çoğaltma topolojisi içinde.
0x400000000
Veri ve dizinler için sıkıştırma seçeneği çoğaltır.Daha fazla bilgi için bkz: Sıkıştırılmış tablolar ve dizinler oluşturma.
0x800000000
Abone adresindeki kendi dosya grubu üzerinde FILESTREAM verileri saklamak için bu seçeneği ayarlayın.Bu seçenek ise küme, FILESTREAM veri varsayılan dosya grubu üzerinde saklanır.Çoğaltma, dosya gruplarını oluşturun; Bu nedenle, sizin küme anlık görüntü abone adresindeki uygulamadan önce bu seçeneği, dosya grubu oluşturmanız gerekir.anlık görüntü görüntüsünü uygulamadan önce nesneleri oluşturma hakkında daha fazla bilgi için bkz: Önce ve sonra bir Snapshot uygulanan komut dosyalarını çalıştırma.
İlgili 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) türü udt sütunları çoğaltılan çalıştıran aboneleri için böylece SQL Server 2005.
0x2000000000
Dönüştürür hierarchyid veri türü varbinary(max) böylece türündeki sütunlar hierarchyid çoğaltılan çalıştıran aboneleri için SQL Server 2005.Nasıl kullanılacağı hakkında daha fazla bilgi için hierarchyid sütunları Çoğaltılan tablolarda görmek hierarchyid (Transact-SQL).
0x4000000000
Herhangi bir filtre uygulanmış dizinler üzerinde çoğaltır tablo.Filtre uygulanmış dizinler hakkında daha fazla bilgi için bkz: Filtre uygulanmış dizin tasarım yönergeleri.
0x8000000000
Dönüştürür geography ve geometry veri türleri varbinary(max) sütunların bu türleri çoğaltılan çalıştıran aboneleri için böylece SQL Server 2005.
0x10000000000
Türü sütun dizinlerde çoğaltır geography ve geometry.
NULL
Sistem otomatik-bir makale geçerli şema seçeneği oluşturur.
Durum
Etkin
Tablo yayımlamak için ilk işlem komut dosyası çalıştırılır.
unsynced
Sonraki tablo yayımlamak için ilk işleme komut dosyasını çalıştırmadan saat Anlık Görüntü Aracısı çalıştırır.
stream_blob_columns
TRUE
Bir veri akışı en iyileştirme ikili büyük nesne sütunları çoğaltılıyor kullanılır.Bununla birlikte, belirli birleştirme çoğaltma mantıksal kayıtları gibi işlevleri hala akış iyileştirme kullanılmasını engellemek.
ÖnemliBu bellek optimizasyonu etkinleştirilmesi eşitleme sırasında Birleştirme Aracısı performansını zararı.Bu seçenek yalnızca verileri içeren sütunları çoğaltılıyor olduğunda kullanılmalıdır.yanlış
En iyi duruma getirme, bir ikili büyük nesne sütunları çoğaltılıyor olduğunda kullanılmaz.
subscriber_upload_options
0
Bir istemci ile bir abone adresindeki yapılan güncelleştirmeleri kısıtlama abonelik; değişiklikler için yayımcı karşıya.Bu özellik değiştirmek gerekebilir varolan aboneleri yeniden.
1
Bir istemci ile bir abone adresindeki değişiklikler verilir abonelik, ancak bunlar için yayımcı karşıya.
2
Bir istemci ile bir abone adresindeki değişiklikler verilmez abonelik.
subset_filterclause
where yan tümce tümce tümce yatay filtre belirtme.Yalnızca bir tablo makale için geçerlidir.
ÖnemliPerformansı düşürmemek için işlev parametreli satır filtresi yan tümcesi, sütun adları gibi uygulanacağını değil öneririz LEFT([MyColumn]) = SUSER_SNAME().Kullanırsanız, host_name filtre yan tümce tümce tümce ve geçersiz kılma host_name değer veri türleri kullanarak dönüştürmek olabilir DÖNÜŞTÜRMEK.Bunun için en iyi yöntemler hakkında daha fazla bilgi için durum, "host_name() değeri geçersiz kılma" bölümüne bakın in Parametreli satır filtreleri.Eşik
Percentage value used for Subscribers running SQL Server Compact 3.5 SP1 or earlier versions of SQL Server.threshold controls when the Merge Agent assigns a new identity range.Eşik değeriyle belirtilen değerler yüzdesini kullanıldığında, Birleştirme Aracısı yeni bir kimlik aralık oluşturur.Ne zaman kullanılan identityrangemanagementoption olan küme için Otomatik veya auto_identity_range olan küme için doğru.Tablo makale yalnızca için geçerlidir.Daha fazla bilgi için bkz: "Merge Replication" kısmında Kimlik sütunları çoğaltılıyor.
verify_resolver_signature
1
Güvenilir bir olup olmadığını belirlemek için özel bir çözümleyici sayısal imza doğrulanır kaynak.
0
Özel bir çözümleyici sayısal imza güvenilir bir olup olmadığını belirlemek için doğrulanmış değil kaynak.
Null(default)
İçin desteklenen değerler listesini döndürür property.
[ @force_invalidate_snapshot = ] force_invalidate_snapshot
Acknowledges that the action taken by this stored procedure may invalidate an existing snapshot.force_invalidate_snapshot is a bit, with a default of 0.0 birleştirme makale değişiklikleri anlık görüntü geçersiz olarak neden belirtir.Saklı yordam, yeni bir anlık görüntü gerektirecek bir değişiklik algılarsa, bir hata oluşur ve değişiklik yapılmaz.
1 olanağı geçersiz olarak 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ştirildi, yeni bir anlık görüntü oluşturulmasını gerektirir.
[ @force_reinit_subscription = ] force_reinit_subscription
Acknowledges that the action taken by this stored procedure may require existing subscriptions to be reinitialized.force_reinit_subscription is a bit, with a default of 0.0 birleştirme makale değişiklikleri abonelik yeniden neden belirtir.Saklı yordam yeniden için varolan abonelikleri değişikliği gerektirecek algılarsa, bir hata oluşur ve değişiklik yapılmaz.
1 neden yeniden, varolan abonelikleri birleştirme makale değiştirir anlamına gelir ve gerçekleşmesi abonelik reinitialization izni verir.
Özellikleri için açıklamalar bölümüne bakın, değiştirilen, varolan tüm abonelikler yeniden gerektirir.
Dönüş Kodu Değerleri
0 (başarılı) veya 1 (başarısız)
Açıklamalar
sp_changemergearticle birleştirmede kullanılan çoğaltma.
Çü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.
Aşağıdaki özelliklerini değiştirerek yeni bir anlık görüntü oluşturulan gerektirir ve değeri belirtmeniz gerekir 1 için force_invalidate_snapshot parametresi:
check_permissions
column_tracking
destination_owner
pre_creation_cmd
schema_options
subset_filterclause
Aşağıdaki özelliklerini değiştirirken varolan gerektirir abonelikleri yeniden, ve değeri belirtmeniz gerekir 1 için force_reinit_subscription parametresi:
check_permissions
column_tracking
destination_owner
subscriber_upload_options
subset_filterclause
3 İçin bir değer belirtmek için partition_options, meta veriler temizleme her Birleştirme Aracısı çalıştırır ve bölümlenmiş anlık görüntü daha hızlı bir şekilde sona erecek.Bu seçeneği kullanırken, bölümlenmiş anlık görüntü abone etkinleştirme istenen göz önünde bulundurmalısınız.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 özellik, tablo diğer birleştirme yayınlarda önceden yayınlanmışsa izleme sütun olması gerekir bu tabloyu temel alan varolan makaleleri tarafından kullanılan değeri ile aynı.Bu parametre, yalnızca tablo makaleleri için özeldir.
Aynı temel alınan temel alınan temel alınan tablo alan makaleleri birden çok yayınları yayımlarsanız, değiştirme delete_tracking özellik veya compensate_for_errors özellik için bir makale aynı temel alınan temel alınan tablo alan makaleleri için yapılması aynı değişikliği neden olur.
Birleştirme işlemi tarafından kullanılan Yayımcı oturum açma/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ştirmek.Yani, o zaman, küme schema_option kullanarak sp_changemergearticle, varolan bit kümetings kapalı.Varolan ayarları korumak için gerçekleştirmeniz & (Bitsel ve) , ayarlamakta olduğunuz geçerli değeri arasındaki, schema_option, hangi belirlenen çalıştırarak sp_helpmergearticle.
Geçerli şema seçeneği tablosu
The following table describes the allowed schema_optionvalues, depending on article type.
Makale türü |
Şema seçenek değerleri |
---|---|
işlev şema |
0x01 ve 0x2000 |
dizinli görünüm şema |
0x01, 0x040, 0x0100, 0x2000, 0x40000, 0x1000000, and 0x200000 |
proc ş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 [AdventureWorks2008R2]
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ü olabilir yürütmek sp_changemergearticle.
Ayrıca bkz.