Share via


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ı simgesi 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.

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

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

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

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

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

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

Kavramlar

Makale özelliklerini görüntüleme ve değiştirme

Değişiklik yayın ve makalesi özellikleri