Aracılığıyla paylaş


sp_changearticle (Transact-SQL)

Bir işlem veya anlık görüntü yayın 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_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'
    Is the name of the publication that contains the article.publication is sysname, with a default of NULL.

  • [ @article=] 'article'
    Is the name of the article whose property is to be changed.article is sysname, with a default of NULL.

  • [ @property=] 'property'
    Is an article property to change.property is nvarchar(100).

  • [ @value=] 'value'
    Is the new value of the article property.value is nvarchar(255).

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

    Özellik

    Değerler

    Açıklama

    creation_script

     

    Yolunu ve adını bir makale hedef tablo oluşturmak için kullanılan şema komut dosyası.Varsayılan değer null olur.

    del_cmd

     

    delete deyim yürütmek; Aksi halde, onu günlük oluşturulur.

    Açıklama

     

    Makale için yeni tanımlayıcı girdisi.

    dest_object

     

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

    dest_table

     

    Yeni hedef tablo.

    destination_owner

     

    Hedef nesnenin sahibi adı.

    filtre

     

    Filtre uygulamak için kullanılacak yeni bir saklı yordam tablo (yatay süzme).Varsayılan değer null olur.Yayınlar, eşler arası çoğaltma için değiştirilemez.

    fire_triggers_on_snapshot

    TRUE

    Çoğaltılmış kullanıcı Tetikleyiciler yürütülen ne zaman ilk anlık görüntü uygulanır.

    NotNot
    Tetikleyici çoğaltılması bit maskesi değeri schema_option değerini içermelidir 0x100.

     

    yanlış

    Kullanıcı Tetikleyiciler çoğaltılan ne zaman Yürütülmeyen ilk anlık görüntü uygulanır.

    identity_range

     

    Denetimleri Abone tarafında atanan kimlik aralığı boyutunu atanmış.Eşler arası çoğaltma için desteklenmiyor.

    ins_cmd

     

    INSERT deyim yürütmek; Aksi halde, onu günlük oluşturulur.

    pre_creation_cmd

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

     

    Yok

    Bir komut kullanın.

     

    bırak

    Hedef Tablo düşünceye.

     

    Sil

    Hedef Tablo siler.

     

    Kes

    Hedef Tablo keser.

    pub_identity_range

     

    Denetimleri Abone tarafında atanan kimlik aralığı boyutunu atanmış.Eşler arası çoğaltma için desteklenmiyor.

    schema_option

    Specifies the bitmap of the schema generation option for the given article.schema_option is binary(8).Daha fazla bilgi için bu konunun ilerisinde açıklamalar bölümüne bakın.

     

    0x00

    komut dosyası kullanan kullanan kullanan 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 makale değişiklikleri yaymak saklı yordamlar oluşturur.

     

    0x04

    Kimlik sütunları kullanarak kimlik özellik vermeyecekleri.

     

    0x08

    Çoğaltma timestamp sütunlar.Aksi takdirde küme, timestamp sütun olarak çoğaltılmasını binary.

     

    0x10

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

     

    0x20 değerli

    Temel abone adresindeki veri türleri dönüştürür kullanıcı tanımlı veri türleri (udt).udt sütun parçası ise bir 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.Oracle yayımcılar için desteklenmiyor.

     

    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

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

    NotNot
    Bu seçenek kalmıştır.Use 0x80 ve 0x4000 onun yerine.

     

    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

     

    0x800000

    Kural bağlar

     

    0x1000000

    Tam metin dizini

     

    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) için 8000 bayttan daha büyük 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.

    0x20000000000

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

    Durum

    Yeni özellik durumunu belirtir.

     

    DTS yatay bölümleri

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

     

    sütun adlarını içerir

    Sütun adları çoğaltılmış INSERT dahil deyim.

     

    hiçbir sütun adları

    Sütun adları değil çoğaltılmış INSERT dahil deyim.

     

    dts yatay bölümleri olmayan

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

     

    Yok

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

     

    parametreler

    Parametreleştirilmiş komutları kullanarak abone değişiklikler yayılır.Yeni bir makale için varsayılan ayar budur.

     

    dize hazır bilgileri

    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 olur.Oracle yayımcılar için desteklenmiyor.

    tablo alanı

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

    Eşik

     

    Ne zaman Dağıtım Aracısı yeni bir kimlik aralık atar denetleyen yüzde 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_object ve filter de özellikleri küme.Oracle yayımcılar için desteklenmiyor.

     

    logbased manualfilter

    El ile filtre ile günlük tabanlı makale.Bu seçenek gerektiren sync_object ve filter de özellikleri küme.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 de özellik küme.Oracle yayımcılar için desteklenmiyor.

     

    indexed viewlogbased

    dizinli 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.

     

    indexed viewlogbased manualboth

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

     

    indexed viewlogbased manualfilter

    El ile filtre ile dizinli görünüm günlük tabanlı makale.Bu seçenek gerektirir sync_object ve filter de özellikleri küme.Bu makale türü için temel tablo ayrı olarak yayımlanmasına gerek yoktur.Oracle yayımcılar için desteklenmiyor.

     

    indexed viewlogbased manualview

    El ile görünümü ile günlük tabanlı dizinli görünüm makale.Bu seçenek gerektiren sync_object de özellik küme.Bu makale türü için temel tablo ayrı olarak yayımlanmasına gerek yoktur.Oracle yayımcılar için desteklenmiyor.

    upd_cmd

     

    update deyim yürütmek; Aksi halde, onu günlük oluşturulur.

    NULL

    NULL

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

  • [ @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 , değişiklikleri belirtir makale anlık görüntü geçersiz olarak neden olmaz.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 , geçersiz olduğu anlık 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 için izin 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ş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 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 , değişiklikleri belirtir makale yeniden, varolan abonelikleri neden 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.

  • [ @ publisher =] 'publisher'
    Specifies a non-SQL Server Publisher.publisher is sysname, with a default of NULL.

    Not

    publisherüzerinde makale özelliklerini değiştirirken kullanılmamalıdır bir SQL Server Yayımcı.

Dönüş Kodu Değerleri

0 (başarılı) veya 1 (başarısız)

Açıklamalar

sp_changearticle anlık görüntü çoğaltması çoğaltması ç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_snapshot parametresi:

  • 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_subscription parametresi.

  • del_cmd

  • dest_table

  • destination_owner

  • filtre

  • ins_cmd

  • Durum

  • upd_cmd

İçinde var olan bir yayın, siz sp_changearticle bırakın ve tüm yeniden oluşturmak zorunda kalmadan bir makale değiştirmek için yayın.

Not

Değerini değiştirirken schema_option, sistem gerçekleştirme bitwise bir güncelleştirme.Yani, o zaman, küme schema_option kullanarak sp_changearticle, 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_helparticle.

Geçerli şema seçenekleri

Aşağıdaki tablo izin verilen değerleri açıklar 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

dizinli görünüm logbased

Tüm seçenekler

Tüm seçenekler ancak 0x02

dizinli görünüm logbased manualfilter

Tüm seçenekler

Tüm seçenekler ancak 0x02

dizinli görünüm logbased manualview

Tüm seçenekler

Tüm seçenekler ancak 0x02

dizinli görünüm logbase manualboth

Tüm seçenekler

Tüm seçenekler ancak 0x02

yordam exec

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

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

seri hale getirilebilir yordam exec

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

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

proc şema

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

0x01, 0x20 değerli, 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

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

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

dizinli 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 için schema_option değeri 0x80 etkinleştirilmiş olması gerekir.Desteklenen schema_option için değer olmayan-SQL Server yayınları şunlardır: 0x01, 0x02, 0x10, 0x40, 0x80, 0x1000 and 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 [AdventureWorks2008R2]
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ü olabilir yürütmek sp_changearticle.