Aracılığıyla paylaş


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.

Konu bağlantısı simgesiTransact-sql sözdizimi 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'
    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.

    NotNot
    Sü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.

    Önemli notÖnemli
    Etkilenen 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.

    Önemli notÖnemli
    Ayar 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.

    NotNot
    Bir 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.

    Önemli notÖnemli
    Bu 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.

    Önemli notÖnemli
    Performansı 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.