Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server Azure SQL Yönetilen Örneği
İşlemsel veya anlık bir yayında makalenin özelliklerini değiştirir. Bu saklı yordam yayın veritabanındaki Publisher'da yürütülür.
Transact-SQL söz dizimi kuralları
Syntax
sys.sp_changearticle
[ [ @publication = ] N'publication' ]
[ , [ @article = ] N'article' ]
[ , [ @property = ] N'property' ]
[ , [ @value = ] N'value' ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ , [ @publisher = ] N'publisher' ]
[ ; ]
Arguments
[ @publication = ] Yayın yok'
Makaleyi içeren yayının adı.
@publicationsysname'dir ve varsayılan olarak ' NULLdir.
[ @article = ] N'article'
Mülkü değiştirilecek eşyanın adı.
@articlesysname'dir, varsayılan olarak .NULL
[ @property = ] N'property'
Değiştirilecek bir makale özelliği.
@propertynvarchar(100)'dür, varsayılan NULLolarak .
[ @value = ] N'value'
Makale özelliğinin yeni değeri.
@valuenvarchar(255), varsayılan değeridir NULL.
Bu tablo, makalelerin özelliklerini ve bu özelliklerin değerlerini açıklar.
| Property | Değerler | Description |
|---|---|---|
creation_script |
Hedef tablolar oluşturmak için kullanılan makale şema betiklerinin yolu ve adı. Varsayılan değer: NULL. |
|
del_cmd |
DELETE uygulama beyanı; aksi takdirde, kütükten inşa edilir. |
|
description |
Makale için yeni betimleyici giriş. | |
dest_object |
Geriye dönük uyumluluk için sağlanır.
dest_table adresini kullanın. |
|
dest_table |
Yeni varış tablosu. | |
destination_owner |
Hedef nesnenin sahibinin adı. | |
filter |
Tabloyu filtrelemek için kullanılacak yeni depolanmış prosedür (yatay filtreleme). Varsayılan değer: NULL. Eşler arası çoğaltma yayınları için değiştirilemez. |
|
fire_triggers_on_snapshot |
true |
Çoğaltılan kullanıcı tetikleyicileri, ilk anlık görüntü uygulandığında çalıştırılır. Not: Tetikleyicilerin çoğaltılması için, bitmask değeri schema_option değeri içermelidir 0x100. |
false |
Çoğaltılan kullanıcı tetikleyicileri, ilk anlık görüntü uygulandığında çalıştırılmaz. | |
identity_range |
Aboneye atanan kimlik aralıklarının boyutunu kontrol eder. Eşler arası çoğaltma desteklenmiyor. | |
ins_cmd |
INSERT uygulama beyanı; aksi takdirde, kütükten inşa edilir. |
|
pre_creation_cmd |
Senkronizasyon uygulanmadan önce hedef tabloyu düşürebilen, silebilen veya kıskalabilen ön oluşturma komutu. | |
none |
Komut kullanmıyor. | |
drop |
Hedef tabloyu düşürüyor. | |
delete |
Hedef tabloyu siler. | |
truncate |
Varış tablosunu kısaltıyor. | |
pub_identity_range |
Aboneye atanan kimlik aralıklarının boyutunu kontrol eder. Eşler arası çoğaltma desteklenmiyor. | |
schema_option |
Verilen makale için şema oluşturma seçeneğinin bit haritasını belirtir.
schema_option
ikilidir(8). Daha fazla bilgi için Açıklamalar bölümüne bakın. |
|
0x00 |
Snapshot Agent tarafından script yapmayı devre dışı bırakıyor. | |
0x01 |
Nesne yaratımı (CREATE TABLE, CREATE PROCEDURE, ve benzeri) üretir. |
|
0x02 |
Tanımlıysa, makale için değişiklikleri yayan saklanan prosedürleri oluşturur. | |
0x04 |
Kimlik sütunları bu IDENTITY özellik kullanılarak betiklenir. |
|
0x08 |
Zaman damgası sütunlarını çoğaltın. Ayarlanmazsa, zaman damgası sütunları ikili olarak çoğaltılır. | |
0x10 |
Buna karşılık gelen kümelenmiş bir indeks oluşturur. | |
0x20 |
Abone içinde kullanıcı tanımlı veri tiplerini (UDT) temel veri tiplerine dönüştürür. Bu seçenek, bir UDT sütununda bir veya CHECK kısıtlama olduğundaDEFAULT, bir UDT sütunu birincil anahtarın parçasa veya hesaplanan bir sütun bir UDT sütununa referans veriyorsa kullanılamaz. Oracle Publishers için desteklenmiyor. |
|
0x40 |
Buna karşılık gelen kümelenmemiş indeksler oluşturur. | |
0x80 |
Birincil anahtarlarda ilan edilen referans bütünlüğü içerir. | |
0x100 |
Tanımlanmışsa, kullanıcı tetikleyicilerini bir tablo makalesinde çoğaltır. | |
0x200 |
Kısıtlamaları çoğaltıyor FOREIGN KEY . Referans verilen tablo bir yayının parçası değilse, yayımlanmış tablodaki tüm FOREIGN KEY kısıtlamalar çoğaltılmaz. |
|
0x400 |
Kısıtlamaları çoğaltıyor CHECK . |
|
0x800 |
Varsayılan ayarları çoğaltıyor. | |
0x1000 |
Sütun düzeyinde derlemeyi çoğaltıyor. | |
0x2000 |
Yayınlanmış makale kaynak nesnesine bağlı genişletilmiş özellikleri çoğaltır. | |
0x4000 |
Bir tablo maddesinde tanımlanmışsa benzersiz anahtarları çoğaltır. | |
0x8000 |
Bir tablo makalesindeki birincil anahtar ve benzersiz anahtarları cümleler kullanarak ALTER TABLE kısıtlama olarak çoğaltır.Not: Bu seçenek artık kullanıl yatmadı. Bunun yerine 0x80 ve 0x4000 kullanın. |
|
0x10000 |
Kısıtlamaları senkronizasyon CHECK sırasında uygulanmaması için çoğaltıyorNOT FOR REPLICATION. |
|
0x20000 |
Kısıtlamaları senkronizasyon FOREIGN KEY sırasında uygulanmaması için çoğaltıyorNOT FOR REPLICATION. |
|
0x40000 |
Bölümlenmiş bir tablo veya indeksle ilişkili dosya gruplarını çoğaltır. | |
0x80000 |
Bölünmüş bir tablo için bölümleme şemasını çoğaltıyor. | |
0x100000 |
Bölünmüş bir indeks için bölümleme şemasını çoğaltır. | |
0x200000 |
Tablo istatistiklerini çoğaltıyor. | |
0x400000 |
Varsayılan bağlamalar. | |
0x800000 |
Kural bağlayıcıları. | |
0x1000000 |
Tam metin indeks. | |
0x2000000 |
XML sütunlarına bağlı XML şema koleksiyonları çoğaltılmaz. | |
0x4000000 |
XML sütunlarındaki indeksleri çoğaltıyor. | |
0x8000000 |
Abonede zaten olmayan şemaları oluşturun. | |
0x10000000 |
Abone üzerinde xml sütunlarını ntext olarak dönüştürür. | |
0x20000000 |
SQL Server 2005 (9.x)'da tanıtılan büyük nesne veri tiplerini (nvarchar(max), varchar(max) ve varbinary(max)) SQL Server 2000 (8.x)'de desteklenen veri tiplerine dönüştürür. | |
0x40000000 |
İzinleri çoğaltın. | |
0x80000000 |
Yayının parçası olmayan herhangi bir nesneye bağımlılıkları kaldırmaya çalışın. | |
0x100000000 |
FILESTREAM sütunlarda belirtilmişse, bu seçeneği kopyalamak için bu seçeneği kullanın. Tabloları SQL Server 2005 (9.x) abonelerine çoğaltıyorsanız bu seçeneği belirtmeyin. FILESTREAM sütunlarına sahip tabloları SQL Server 2000 (8.x) abonelerine çoğaltmak, bu şema seçeneğinin nasıl ayarlandığı fark etmez desteklenmiyor.İlgili seçeneğe 0x800000000bakınız. |
|
0x200000000 |
SQL Server 2008 (10.0.x)'de tanıtılan tarih ve saat veri türlerini (tarih, saat, tarih zamanıofseti ve tarih zamanı2) önceki SQL Server sürümlerinde desteklenen veri türlerine dönüştürür. | |
0x400000000 |
Veri ve indeksler için sıkıştırma seçeneğini çoğaltıyor. Daha fazla bilgi için bkz. Veri sıkıştırma. | |
0x800000000 |
Bu seçenek, FILESTREAM verilerini Abone Grubu'ndaki kendi dosya grubunda depolayacak şekilde ayarlayın. Bu seçenek ayarlanmadıysa, FILESTREAM verileri varsayılan dosya grubunda saklanır. Çoğaltma dosya grupları oluşturmaz; bu nedenle, bu seçeneği ayarlıyorsanız, anlık görüntüyü Aboneye uygulamadan önce dosya grubunu oluşturmanız gerekir. Snapshot uygulamadan önce nesne nasıl oluşturulacağı hakkında daha fazla bilgi için Snapshot Uygulanmadan Önce ve Sonra Scriptleri Çalıştır bölümüne bakabilirsiniz. İlgili seçeneğe 0x100000000bakınız. |
|
0x1000000000 |
8.000 bayttan büyük ortak dil çalışma zamanı (CLR) kullanıcı tanımlı türleri (UDT'leri) varbinary(max) olarak dönüştürür; böylece UDT tipindeki sütunlar SQL Server 2005 (9.x) çalıştıran abonelere çoğaltılabilir. | |
0x2000000000 |
Hiyerarşi veri tipini varbinary(max) olarak dönüştürür, böylece tip hiyerarşisi sütunları SQL Server 2005 (9.x) çalıştıran abonelere çoğaltılabilir. Çoğaltılan tablolarda hiyerarşi sütunlarının nasıl kullanılacağı hakkında daha fazla bilgi için hiyerarşi veri tipi metod referansına bakınız. | |
0x4000000000 |
Tablodaki filtrelenmiş indeksleri çoğaltıyor. Filtrelenmiş dizinler hakkında daha fazla bilgi için bkz. Filtrelenmiş dizinler oluşturma. | |
0x8000000000 |
Coğrafya ve geometri veri tiplerini varbinary(max) olarak dönüştürür, böylece bu tipteki sütunlar SQL Server 2005 (9.x) çalıştıran Abonelere çoğaltılabilir. | |
0x10000000000 |
Coğrafyave geometri tipi sütunlarındaki indeksleri çoğaltır. | |
0x20000000000 |
Sütunlar için özniteliği çoğaltıyor SPARSE . Bu öznitelik hakkında daha fazla bilgi için bkz. Seyrek sütunlar kullan. |
|
0x40000000000 |
Abone üzerinde bellek optimize edilmiş tablo oluşturmak için snapshot ajanı tarafından betik yazmayı etkinleştirin. | |
0x80000000000 |
Bellek optimize edilmiş makaleler için kümelenmiş indeksi kümelenmemiş indekse dönüştürür. | |
status |
Mülkün yeni durumunu belirtir. | |
dts horizontal partitions |
Yalnızca bilgilendirme amacıyla tanımlanır. Desteklenmiyor. Gelecekteki uyumluluk garanti edilmemektedir. | |
include column names |
Sütun adları çoğaltılan INSERT ifadede yer alır. |
|
no column names |
Sütun adları çoğaltılan INSERT ifadede yer almıyor. |
|
no dts horizontal partitions |
Makalenin yatay bölümü dönüştürülebilir abonelikle tanımlanmaz. | |
none |
Sistem maddeleri tablosunda tüm durum seçeneklerini temizler ve makaleyi etkin olmayan olarak işaretler. | |
parameters |
Değişiklikler, parametreli komutlarla aboneye iletilir. Bu, yeni bir makale için varsayılan ayardır. | |
string literals |
Değişiklikler, dize literal değerleri kullanılarak aboneye iletilir. | |
sync_object |
Senkronizasyon çıktı dosyası üretmek için kullanılan tablo veya görünüm adı. Varsayılan değer: NULL. Oracle Publishers için desteklenmiyor. |
|
tablespace |
Oracle veritabanından yayımlanan bir makale için loglama tablosunun kullandığı tablo alanını tanımlar. Daha fazla bilgi için bkz. Oracle Tablespaces'ı yönetme. | |
threshold |
Distribution Agent'ın yeni bir kimlik aralığı atamasını kontrol eden yüzde değeri. Eşler arası çoğaltma desteklenmiyor. | |
type |
Oracle Publishers için desteklenmiyor. | |
logbased |
Log tabanlı makale. | |
logbased manualboth |
Günlük tabanlı makale, manuel filtre ve manuel görünüm. Bu seçenek, ve sync_object özelliklerini de ayarlamanızı filter gerektirir. Oracle Publishers için desteklenmiyor. |
|
logbased manualfilter |
Manuel filtreli günlük makale. Bu seçenek, ve sync_object özelliklerini de ayarlamanızı filter gerektirir. Oracle Publishers için desteklenmiyor. |
|
logbased manualview |
Manuel görünümlü günlük tabanlı makale. Bu seçenek, ayrıca mülkü sync_object de ayarlamanızı gerektirir. Oracle Publishers için desteklenmiyor. |
|
indexed viewlogbased |
Log tabanlı indeksli görünüm makalesi. Oracle Publishers için desteklenmiyor. Bu tür makaleler için temel tablonun ayrı yayımlanması gerekmez. | |
indexed viewlogbased manualboth |
Log tabanlı indeksli görünüm, manuel filtre ve manuel görünüm ile makale. Bu seçenek, ve sync_object özelliklerini de ayarlamanızı filter gerektirir. Bu tür makaleler için temel tablonun ayrı yayımlanması gerekmez. Oracle Publishers için desteklenmiyor. |
|
indexed viewlogbased manualfilter |
Log tabanlı indeksli görünüm makalesi, manuel filtre. Bu seçenek, ve sync_object özelliklerini de ayarlamanızı filter gerektirir. Bu tür makaleler için temel tablonun ayrı yayımlanması gerekmez. Oracle Publishers için desteklenmiyor. |
|
indexed viewlogbased manualview |
Log tabanlı indeksli görünümlü makale, manuel görünümlü. Bu seçenek, ayrıca mülkü sync_object de ayarlamanızı gerektirir. Bu tür makaleler için temel tablonun ayrı yayımlanması gerekmez. Oracle Publishers için desteklenmiyor. |
|
upd_cmd |
UPDATE uygulama beyanı; aksi takdirde, kütükten inşa edilir. |
|
NULL |
NULL |
Değiştirilebilecek makale özelliklerinin bir listesini döndürür. |
[ @force_invalidate_snapshot = ] force_invalidate_snapshot
Bu saklanan prosedürün aldığı işlemin mevcut bir anlık görüntüyü geçersiz kılabileceğini kabul eder.
@force_invalidate_snapshotbittir ve varsayılan değeridir 0.
0 , makalede yapılan değişikliklerin anlık görüntünün geçersiz olmasını neden olmadığını belirtir. Eğer saklanan prosedür değişikliğin yeni bir anlık görüntü gerektirdiğini tespit ederse, hata oluşur ve hiçbir değişiklik yapılmaz.
1 makaledeki değişikliklerin snapshot'un geçersiz hale gelmesine yol açabileceğini belirtir ve yeni bir snapshot gerektiren mevcut abonelikler varsa, mevcut snapshot'un modası geçersiz olarak işaretlenmesine ve yeni bir snapshot oluşturulmasına izin verir.
Değiştirildiğinde yeni bir anlık görüntünün oluşturulmasını gerektiren özellikler için Açıklamalar bölümüne bakınız.
[ @force_reinit_subscription = ] force_reinit_subscription
Bu saklanan prosedürün aldığı işlemin mevcut aboneliklerin yeniden başlatılmasını gerektirebileceğini kabul eder.
@force_reinit_subscriptionbittir ve varsayılan değeridir 0.
0 makaledeki değişikliklerin aboneliğin yeniden başlatılmasına neden olmadığını belirtir. Eğer kaydedilen prosedür değişikliğin mevcut aboneliklerin yeniden başlatılması gerektiğini tespit ederse, bir hata oluşur ve herhangi bir değişiklik yapılmaz.
1 makaledeki değişikliklerin mevcut aboneliklerin yeniden başlatılmasına yol açtığını belirtir ve abonelik yeniden başlatma izni verir.
Değiştirildiğinde tüm mevcut aboneliklerin yeniden başlatılması gerektiğini gerektiren özellikler için Açıklamalar bölümüne bakınız.
[ @publisher = ] N'publisher'
SQL Server olmayan bir Yayıncı belirtir.
@publishersysname'dir ve varsayılan olarak .NULL
Note
@publisher SQL Server Publisher üzerinde makale özellikleri değiştirilirken kullanılmamalıdır.
Dönüş kodu değerleri
0 (başarı) veya 1 (başarısızlık).
Remarks
sp_changearticle anlık görüntü çoğaltma ve işlemsel çoğaltmada kullanılır.
Bir makale, eşler arası işlem replikasyonunu destekleyen bir yayına ait olduğunda, yalnızca , , description, ve ins_cmd özelliklerini değiştirebilirsinizupd_cmd. del_cmd
Aşağıdaki özelliklerden herhangi birini değiştirmek için yeni bir anlık görüntü oluşturulması gerekir ve 1 parametresi için bir değer belirtmeniz gerekir:
del_cmddest_tabledestination_ownerins_cmdpre_creation_cmdschema_optionsupd_cmd
Aşağıdaki özelliklerden herhangi birini değiştirmek için mevcut aboneliklerin yeniden başlatılması gerekir ve 1 parametresi için bir değer belirtmeniz gerekir.
del_cmddest_tabledestination_ownerfilterins_cmdstatusupd_cmd
Mevcut bir yayında, sp_changearticle makaleyi tamamen bırakıp yeniden oluşturmak zorunda kalmadan makaleyi değiştirebilirsiniz.
Note
Değerini schema_optiondeğiştirdiğinde, sistem bitli güncelleme yapmaz. Bu, schema_option mevcut bit ayarlarını kullandığınızda sp_changearticlekapalı olabileceği anlamına gelir. Mevcut ayarları korumak için | (Bitwise OR) Ayarladığınız değer ile mevcut değer schema_optionarasında , bu da sp_helparticle çalıştırarak belirlenebilir.
Geçerli şema seçenekleri
Aşağıdaki tablo, çoğaltma tipine (üstte gösterilmiştir) ve makale tipine (ilk sütunda gösterilmiştir) dayalı izin verilen değerleri schema_option açıklar.
| Makale türü | Çoğaltma türü - İşlemsel | Çoğaltma türü - Anlık görüntü |
|---|---|---|
logbased |
Tüm seçenekler | Tüm seçenekler hariç 0x02 |
logbased manualfilter |
Tüm seçenekler | Tüm seçenekler hariç 0x02 |
logbased manualview |
Tüm seçenekler | Tüm seçenekler hariç 0x02 |
indexed view logbased |
Tüm seçenekler | Tüm seçenekler hariç 0x02 |
indexed view logbased manualfilter |
Tüm seçenekler | Tüm seçenekler hariç 0x02 |
indexed view logbased manualview |
Tüm seçenekler | Tüm seçenekler hariç 0x02 |
indexed view logbase manualboth |
Tüm seçenekler | Tüm seçenekler hariç 0x02 |
proc exec |
0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x80000000x100000000x200000000x40000000, ve0x80000000 |
0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x80000000x100000000x200000000x40000000, ve0x80000000 |
serializable proc exec |
0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x80000000x100000000x200000000x40000000, ve0x80000000 |
0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x80000000x100000000x200000000x40000000, ve0x80000000 |
proc schema only |
0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x80000000x100000000x200000000x40000000, ve0x80000000 |
0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x80000000x100000000x200000000x40000000, ve0x80000000 |
view schema only |
0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 ve 0x80000000 |
0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 ve 0x80000000 |
func schema only |
0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x80000000x100000000x200000000x40000000, ve0x80000000 |
0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x80000000x100000000x200000000x40000000, ve0x80000000 |
indexed view schema only |
0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 ve 0x80000000 |
0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x40000000 ve 0x80000000 |
Note
Kuyrukta güncellenen yayınlar için, schema_option değeri 0x80 etkinleştirilmelidir. SQL Server dışı yayınlar için desteklenen schema_option değerler şunlardır: 0x01, 0x02, 0x10, 0x400x800x1000, ve .0x4000
Examples
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 [AdventureWorks2022]
EXEC sp_changearticle
@publication = @publication,
@article = @article,
@property = N'schema_option',
@value = @option,
@force_invalidate_snapshot = 1;
GO
Permissions
Yalnızca sistem yöneticisi sabit sunucu rolünün veya sabit db_owner veritabanı rolünün sp_changearticleüyeleri çalıştırabilir.