veyasp_changearticle (Transact-sql)

Bir işlem veya snapshot yayın bir 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_changearticle [ [@publication= ] 'publication' ]
    [ , [ @article= ] 'article' ]
    [ , [ @property= ] 'property' ]
    [ , [ @value= ] 'value' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
    [ , [ @publisher = ] 'publisher' ]

Bağımsız değişkenler

  • @ publication ='publication'
    Makaleyi içeren Yayını addır. publicationise sysname, null varsayılan.

  • @article='article'
    Değiştirilecek olan mülkiyet olduğu makaleyi addır. articleise sysname, null varsayılan.

  • @property='property'
    Değiştirmek için bir makale özelliği olduğunu. propertyis nvarchar(100).

  • @value='value'
    Yeni makale özelliği değeridir. valueis nvarchar(255).

    Bu tablo makaleleri ve bu özelliklerin değerlerini özelliklerini açıklar.

    Özellik

    Değerleri

    Açıklama

    creation_script

     

    Hedef tablo oluşturmak için kullanılan bir makaleyi şema komut dosyası adını ve yolu. Varsayılan değer NULL'tur.

    del_cmd

     

    delete deyimi yürütme; Aksi takdirde, günlükten inşa edilmiştir.

    Açıklama

     

    Yeni makaleyi tanımlayıcı girdisi.

    dest_object

     

    Geriye dönük uyumluluk için sağlanır. Kullanım dest_table.

    dest_table

     

    Yeni hedef tablo.

    destination_owner

     

    Hedef nesnenin sahibi adı.

    Filtre

     

    Yeni saklı yordam (Yatay süzmek) filtrelemek için kullanılacak. Varsayılan değer NULL'tur. Eşler arası çoğaltma yayınlar için değiştirilemez.

    fire_triggers_on_snapshot

    TRUE

    İlk anlık uygulandığında Tetikleyiciler yürütülen kullanıcı çoğaltılır.

    NotNot
    Çoğaltılacak, Tetikleyiciler için bit maskesi değeri schema_optiondeğerini içermelidir 0x100.

     

    yanlış

    Çoğaltılmış kullanıcı ilk anlık uygulandığında tetikleyici yürütülmez.

    identity_range

     

    Denetimler, abone için atanan kimlik aralığı boyutunu atanmış. Eşler arası çoğaltma için desteklenmiyor.

    ins_cmd

     

    Yürütülecek deyimini ekleyin. Aksi takdirde, günlükten inşa edilmiştir.

    pre_creation_cmd

    Bırakın, silmek veya eşitleme uygulanmadan önce hedef tablo kesecek pre-creation komut.

     

    hiçbiri

    Bir komut kullanın.

     

    bırak

    Hedef Tablo düşünceye.

     

    Sil

    Hedef tablo siler.

     

    kesecek

    Hedef Tablo keser.

    pub_identity_range

     

    Denetimler, abone için atanan kimlik aralığı boyutunu atanmış. Eşler arası çoğaltma için desteklenmiyor.

    schema_option

    Verilen makaleyi şema oluşturma seçeneği belirtir. schema_optionis binary(8). 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.

     

    0x01

    Nesne oluşturma (create table, create procedure vb.) oluşturur.

     

    0x02

    Tanımlanan bir makale değişiklikleri yaymak saklı yordamlar oluşturur.

     

    0x04

    Kimlik sütunları IDENTITY özelliği kullanarak komut dosyası.

     

    0x08

    Çoğaltma timestampsütun. Yoksa ayarlamak, timestampolarak sütunları çoğaltılan binary.

     

    gerçekleşen

    Karşılık gelen kümelenmiş bir dizin oluşturur.

     

    0x20

    Temel abone veri türlerine dönüştürür kullanıcı tanımlı veri türleri (udt). Olduğunda bir onay veya varsayılan kısıtlama bir udt sütun 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. Oracle yayımcılar için desteklenmiyor.

     

    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

    Birincil anahtar ve benzersiz tablo makale tuşlar alter table deyimleri kullanarak kısıtlamaları olarak çoğaltır.

    NotNot
    Bu seçenek onaylanmaz.Kullanım 0x80 ve 0x4000 onun yerine.

     

    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ğlamaları

     

    0x800000

    Kural bağlar

     

    0x1000000

    Tam metin dizini

     

    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) içinde başlandı 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) 8000 bayttan daha büyük 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.

    0x20000000000

    sparse özniteliği sütunları için çoğaltır. Bu öznitelik hakkında daha fazla bilgi için bkz: Seyrek sütunlar kullanma.

    durumu

    Özellik yeni durumunu belirtir.

     

    DTS yatay bölümleri

    Yalnızca bilgi amaçlı olarak belirtilmiştir. Desteklenmez. Gelecekteki uyumluluk garanti edilmez.

     

    sütun adları

    Sütun adları, çoğaltılmış INSERT deyimi içinde bulunur.

     

    sütun adları

    Çoğaltılmış INSERT deyimi sütun adları dahil değildir.

     

    hiçbir dts yatay bölümleri

    Makale yatay bölüm transformable abonelik tarafından tanımlanır.

     

    hiçbiri

    Tüm durum seçenekleri temizler sysarticles tablo ve makale etkin değil olarak işaretler.

     

    parametreler

    Değişiklikler için abone Parametreli Komutlar kullanılarak yayılır. Yeni bir madde için varsayılan ayar budur.

     

    dize hazır bilgi

    Dize hazır bilgi değerleri kullanarak abone değişiklikler yayılır.

    sync_object

     

    Tablo veya Görünüm eşitleme çıktı dosyası üretmek için kullanılan adı. Varsayılan değer NULL'tur. Oracle yayımcılar için desteklenmiyor.

    tablespace

    Oracle veritabanından yayımlanan bir makale için günlüğe kaydetme tablo tarafından kullanılan tablespace tanımlar. Daha fazla bilgi için, bkz. Oracle Tablespaces yönetme.

    eşik

     

    Ne zaman dağıtım aracı yeni bir kimlik aralığı atar denetleyen yüzdesi değeri. Eşler arası çoğaltma için desteklenmiyor.

    type

     

    Oracle yayımcılar için desteklenmiyor.

     

    logbased

    Günlük tabanlı makale.

     

    logbased manualboth

    El ile filtre ve el ile görünümü ile günlük tabanlı makale. Bu seçenek gerektiren sync_objectve filterözellikleri de belirler. Oracle yayımcılar için desteklenmiyor.

     

    logbased manualfilter

    El ile filtre ile günlük tabanlı makale. Bu seçenek gerektiren sync_objectve filterözellikleri de belirler. Oracle yayımcılar için desteklenmiyor.

     

    logbased manualview

    El ile görünümü ile günlük tabanlı makale. Bu seçenek gerektiren sync_objectözelliği ayarlanmış olabilir de. Oracle yayımcılar için desteklenmiyor.

     

    görünümü dizine logbased

    Dizin oluşturulmuş görünüm, günlük tabanlı makale. Oracle yayımcılar için desteklenmiyor. Bu makale türü için temel tablo ayrı olarak yayımlanmasına gerek yoktur.

     

    görünümü dizine logbased manualboth

    El ile filtre ve el ile görünümü ile günlük tabanlı dizin oluşturulmuş görünüm makale. Bu seçenek gerektiren sync_objectve filterözellikleri de belirler. Bu makale türü için temel tablo ayrı olarak yayımlanmasına gerek yoktur. Oracle yayımcılar için desteklenmiyor.

     

    görünümü dizine logbased manualfilter

    El ile filtre ile dizin oluşturulmuş görünüm, günlük tabanlı makale. Bu seçenek gerekir sync_objectve filterözellikleri de belirler. Bu makale türü için temel tablo ayrı olarak yayımlanmasına gerek yoktur. Oracle yayımcılar için desteklenmiyor.

     

    görünümü dizine logbased manualview

    El ile görünümü ile günlük tabanlı dizin oluşturulmuş görünüm makale. Bu seçenek gerektiren sync_objectözelliği ayarlanmış olabilir de. Bu makale türü için temel tablo ayrı olarak yayımlanmasına gerek yoktur. Oracle yayımcılar için desteklenmiyor.

    upd_cmd

     

    GÜNCELLEŞTİRME deyimini yürütmek için; Aksi takdirde, günlükten inşa edilmiştir.

    NULL

    NULL

    Değiştirilebilir makale özelliklerini listesini döndürür.

  • @ 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_snapshotolan bir bit, varsayılan 0.

    0 makaleyi değişiklikleri anlık geçersiz neden olmaz 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 makaleyi değişiklikleri anlık geçersiz 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 için izni verir ve yeni bir anlık görüntü oluşturulan belirtir.

    Ö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 bitvarsayılan ile 0.

    0 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 değişiklikleri makale yeniden, varolan abonelikleri neden belirtir 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.

  • @ publisher=] 'publisher'
    Olmayan bir belirtir- SQL Server Yayınevi. publisherise sysname, null varsayılan.

    [!NOT]

    publishermakale özelliklerini değiştirirken kullanılmamalıdır bir SQL ServerYayınevi.

Dönüş Kodu Değerleri

0 (başarılı) veya 1 (hata)

Açıklamalar

sp_changearticle anlık görüntü çoğaltma ve işlem çoğaltma kullanılır.

Bir makale eşler arası işlem çoğaltma destekleyen bir yayın ait olduğunda, yalnızca değiştirebileceğiniz Açıklama, ins_cmd, upd_cmd, ve del_cmd özellikleri.

Aşağıdaki özelliklerden herhangi birini değiştirmek için yeni bir anlık görüntü oluşturulan ve değeri belirtmeniz gerekir 1 için force_invalidate_snapshotparametresi:

  • del_cmd

  • dest_table

  • destination_owner

  • ins_cmd

  • pre_creation_cmd

  • schema_options

  • upd_cmd

Aşağıdaki özelliklerden herhangi birini değiştirmek, varolan gerektirir abonelikleri yeniden ve değeri belirtmeniz gerekir 1 için force_reinit_subscriptionparametresi.

  • del_cmd

  • dest_table

  • destination_owner

  • Filtre

  • ins_cmd

  • durumu

  • upd_cmd

Varolan bir yayına içinde sen-ebilmek kullanma sp_changearticle bırakın ve yayının tamamını yeniden oluşturmak zorunda kalmadan bir makale değiştirmek için.

[!NOT]

Değerini değiştirirken schema_option, sistem düzeyinde bir güncelleştirme gerçekleştirmez. Bu demektir ki sen ne zaman schema_optionkullanarak sp_changearticle, 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 sp_helparticle.

Geçerli şema seçenekleri

İzin verilen değerler aşağıdaki tabloda açıklanmaktadır schema_option(üst boyunca gösterilen) çoğaltma türü ve (ilk sütun boyunca gösterilen) makale türü temel.

Makale türü

Çoğaltma türü

 

 

İşlem

Anlık görüntü

logbased

Tüm seçenekler

Tüm seçenekler ancak 0x02

logbased manualfilter

Tüm seçenekler

Tüm seçenekler ancak 0x02

logbased manualview

Tüm seçenekler

Tüm seçenekler ancak 0x02

Dizin oluşturulmuş görünüm logbased

Tüm seçenekler

Tüm seçenekler ancak 0x02

Dizin oluşturulmuş görünüm logbased manualfilter

Tüm seçenekler

Tüm seçenekler ancak 0x02

Dizin oluşturulmuş görünüm logbased manualview

Tüm seçenekler

Tüm seçenekler ancak 0x02

Dizin oluşturulmuş görünüm logbase manualboth

Tüm seçenekler

Tüm seçenekler ancak 0x02

yordam Yönet

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000, ve 0x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000, ve 0x80000000

seri hale getirilebilir yordam Yönet

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000, ve 0x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000, ve 0x80000000

yalnızca yordam şema

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000, ve 0x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000, ve 0x80000000

yalnızca görünüm şema

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000, and 0x80000000

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000, and 0x80000000

işlev şema yalnızca

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000, ve 0x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x40000000, ve 0x80000000

Dizin oluşturulmuş görünüm şema

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000, and 0x80000000

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000, and 0x80000000

[!NOT]

Kuyruğa alınmış güncelleştirme yayınlar, schema_optiondeğeri 0x80 etkinleştirilmiş olması gerekir. Desteklenen schema_optioniçin değer olmayan- SQL Server yayınları: 0x01, 0x02, gerçekleşen, 0x40, 0x80, 0x1000 ve 0x4000.

Örnek

DECLARE @publication AS sysname;
DECLARE @article AS sysname;
DECLARE @option AS int;
SET @publication = N'AdvWorksProductTran';
SET @article = N'Product';
SET @option = (SELECT CAST(0x0000000002030073 AS int));

-- Change the schema options to replicate schema with XML.
USE [AdventureWorks2012]
EXEC sp_changearticle 
  @publication = @publication,
  @article = @article, 
  @property = N'schema_option', 
  @value = @option,
  @force_invalidate_snapshot = 1;
GO

İzinler

Yalnızca üyeleri sysadmin sabit sunucu rolü veya db_owner sabit veritabanı rolü yürütebilirsiniz sp_changearticle.

Ayrıca bkz.

Başvuru

eşdeğerdirsp_addarticle (Transact-sql)

sp_articlecolumn (Transact-sql)

sp_droparticle (Transact-sql)

eşdeğerdirsp_helparticle (Transact-sql)

sp_helparticlecolumns (Transact-sql)

Kavramlar

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

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