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.
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.
NotÇ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.
NotBu 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)
eşdeğerdirsp_helparticle (Transact-sql)
sp_helparticlecolumns (Transact-sql)