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
Bir makale oluşturur ve yayına ekler. Bu saklı yordam yayın veritabanındaki Publisher'da yürütülür.
Transact-SQL söz dizimi kuralları
Syntax
sys.sp_addarticle
[ @publication = ] N'publication'
, [ @article = ] N'article'
[ , [ @source_table = ] N'source_table' ]
[ , [ @destination_table = ] N'destination_table' ]
[ , [ @vertical_partition = ] N'vertical_partition' ]
[ , [ @type = ] N'type' ]
[ , [ @filter = ] N'filter' ]
[ , [ @sync_object = ] N'sync_object' ]
[ , [ @ins_cmd = ] N'ins_cmd' ]
[ , [ @del_cmd = ] N'del_cmd' ]
[ , [ @upd_cmd = ] N'upd_cmd' ]
[ , [ @creation_script = ] N'creation_script' ]
[ , [ @description = ] N'description' ]
[ , [ @pre_creation_cmd = ] N'pre_creation_cmd' ]
[ , [ @filter_clause = ] N'filter_clause' ]
[ , [ @schema_option = ] schema_option ]
[ , [ @destination_owner = ] N'destination_owner' ]
[ , [ @status = ] status ]
[ , [ @source_owner = ] N'source_owner' ]
[ , [ @sync_object_owner = ] N'sync_object_owner' ]
[ , [ @filter_owner = ] N'filter_owner' ]
[ , [ @source_object = ] N'source_object' ]
[ , [ @artid = ] artid OUTPUT ]
[ , [ @auto_identity_range = ] N'auto_identity_range' ]
[ , [ @pub_identity_range = ] pub_identity_range ]
[ , [ @identity_range = ] identity_range ]
[ , [ @threshold = ] threshold ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @use_default_datatypes = ] use_default_datatypes ]
[ , [ @identityrangemanagementoption = ] N'identityrangemanagementoption' ]
[ , [ @publisher = ] N'publisher' ]
[ , [ @fire_triggers_on_snapshot = ] N'fire_triggers_on_snapshot' ]
[ ; ]
Arguments
[ @publication = ] Yayın yok'
Makaleyi içeren yayının adı. İsim veritabanında benzersiz olmalıdır. @publicationsysname'dir, varsayılan yoktur.
[ @article = ] N'article'
Makalenin adı. İsim, yayın içinde benzersiz olmalıdır. @articlesysname'dir, varsayılan yoktur.
[ @source_table = ] N'source_table'
Bu parametre kullanımdan kaldırılmıştır; Bunun yerine @source_object kullanın.
@source_tablenvarchar(386)'dır ve varsayılan olarak .NULL
@source_table Oracle Publishers için desteklenmiyor.
[ @destination_table = ] N'destination_table'
Eğer hedef (abonelik) tablosunun adı, eğer @source_table veya saklanan prosedürden farklıysa.
@destination_tablesysname'dir ve varsayılan olarak .NULL Eğer ayarlanırsa NULL, bu @source_table'nin@destination_table'ye eşit olduğu anlamına gelir.
[ @vertical_partition = ] N'vertical_partition'
Bir tablo makalesinde sütun filtrelemeyi etkinleştirir ve devre dışı bırakır.
@vertical_partitionnchar(5)'dir, varsayılan falseolarak .
falsedikey filtreleme olmadığını gösterir ve tüm sütunları yayımlar.trueilan edilen birincil anahtar, varsayılan olmayan nullable sütunlar ve benzersiz anahtar sütunları dışındaki tüm sütunları temizler. Sütunlar sp_articlecolumn kullanılarak eklenir.
[ @type = ] N'type'
Makale türü.
@typesysname'dir, varsayılan değeri vardır NULLve aşağıdaki değerlerden biri olabilir.
| Value | Açıklama |
|---|---|
aggregate schema only |
Sadece şema ile toplu fonksiyon. |
func schema only |
Sadece şema ile fonksiyon. |
indexed view logbased |
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 view logbased manualboth |
Log tabanlı indeksli görünüm, manuel filtre ve manuel görünüm ile makale. Bu seçenek, hem @sync_object hem de @filter parametrelerini belirtmenizi gerektirir. Bu tür makaleler için temel tablonun ayrı yayımlanması gerekmez. Oracle Publishers için desteklenmiyor. |
indexed view logbased manualfilter |
Log tabanlı indeksli görünüm makalesi, manuel filtre. Bu seçenek, hem @sync_object hem de @filter parametrelerini belirtmenizi gerektirir. Bu tür makaleler için temel tablonun ayrı yayımlanması gerekmez. Oracle Publishers için desteklenmiyor. |
indexed view logbased manualview |
Log tabanlı indeksli görünümlü makale, manuel görünümlü. Bu seçenek, @sync_object parametresini belirtmenizi gerektirir. Bu tür makaleler için temel tablonun ayrı yayımlanması gerekmez. Oracle Publishers için desteklenmiyor. |
indexed view schema only |
Sadece şema ile indekslenmiş görünüm. Bu tür makaleler için temel tablo da yayımlanmalıdır. |
logbased (varsayılan) |
Log tabanlı makale. |
logbased manualboth |
Günlük tabanlı makale, manuel filtre ve manuel görünüm. Bu seçenek, hem @sync_object hem de @filter parametrelerini belirtmenizi gerektirir. Oracle Publishers için desteklenmiyor. |
logbased manualfilter |
Manuel filtreli günlük makale. Bu seçenek, hem @sync_object hem de @filter parametrelerini belirtmenizi gerektirir. Oracle Publishers için desteklenmiyor. |
logbased manualview |
Manuel görünümlü günlük tabanlı makale. Bu seçenek, @sync_object parametresini belirtmenizi gerektirir. Oracle Publishers için desteklenmiyor. |
proc exec |
Depolanan prosedürün yürütülmesini makalenin tüm abonelerine çoğaltır. Oracle Publishers için desteklenmiyor. Proc exec yerine serileştirilebilir proc exec seçeneğini kullanmanızı öneririz. Daha fazla bilgi için, Publishing Stored Procedure Execution in Transactional Replication bölümünde "Stored Procedure Execution Türleri" bölümüne bakınız. Değişiklik veri yakalaması etkinleştirildiğinde kullanılabilir değildir. |
proc schema only |
Sadece şema ile prosedür. Oracle Publishers için desteklenmiyor. |
serializable proc exec |
Depolanan prosedürün yürütülmesini yalnızca serileştirilebilir bir işlem bağlamında çalıştırıldığında çoğaltır. Oracle Publishers için desteklenmiyor. Prosedürün tekrarlanması için prosedürün açık bir işlem içinde yürütülmesi gerekir. |
view schema only |
Sadece şema ile görüntüleyin. Oracle Publishers için desteklenmiyor. Bu seçeneği kullanırken ayrıca temel tabloyu da yayınlamalısınız. |
[ @filter = ] N'filter'
Depolanan prosedür (FOR REPLICATION ile oluşturulan) tabloyu yatay olarak filtrelemek için kullanılır.
@filternvarchar(386)'dır ve varsayılan olarak .NULL Görüntüleme ve filtreleme işlemini oluşturmak için sp_articleview çalıştırıp sp_articlefilter manuel olarak çalıştırmalısınız. Eğer yapılmadıysa NULL, filtre prosedürü oluşturulmuyor (saklanan prosedürün manuel olarak oluşturulduğunu varsayar).
[ @sync_object = ] N'sync_object'
Bu makalenin anlık görüntüsünü temsil etmek için kullanılan veri dosyasının üretiminde kullanılan tablo veya görünüm adı.
@sync_objectnvarchar(386)'dır ve varsayılan olarak .NULL Eğer NULL, çıktı dosyasını oluşturmak için kullanılan görünümü otomatik olarak oluşturmak için sp_articleview çağrılır. Bu, sp_articlecolumn olan herhangi bir sütun eklendikten sonra gerçekleşir. Eğer yoksa NULL, bir görünüm oluşturulmuyor (görünüşün manuel olarak oluşturulduğunu varsayar).
[ @ins_cmd = ] N'ins_cmd'
Bu makale için eklemeleri çoğaltırken kullanılan replikasyon komutu türü. @ins_cmdnvarchar(255)'dir ve aşağıdaki değerlerden biri olabilir.
| Value | Açıklama |
|---|---|
NONE |
Hiçbir işlem yapılmaz. |
CALL sp_MSins_<table> (varsayılan)-veya- CALL custom_stored_procedure_name |
Abonede çalıştırılması gereken bir saklanan prosedürü çağırır. Bu çoğaltma yöntemini kullanmak için, @schema_option kullanılarak depolanan prosedürün otomatik oluşturulmasını belirtebilir veya makalenin her abonesinin hedef veritabanında belirtilen saklanan prosedürü oluşturulur.
<custom_stored_procedure> kullanıcı tarafından oluşturulan bir depolanmış prosedürün adıdır.
sp_MSins_<table> Parametrenin _table kısmı yerine hedef tablonun adını içerir.
@destination_owner belirtildiğinde, hedef tablo adının öncülü olarak eklenir. Örneğin, Abone içindeki şemaya ait tablo ProductCategory için Production parametre şöyle olurduCALL sp_MSins_ProductionProductCategory. Eşler arası bir replikasyon topolojisindeki bir makale için, <table> bir GUID değeri eklenir. Abone güncellemesi için belirtmek <custom_stored_procedure> desteklenmiyor. |
SQL veya NULL |
Bir INSERT ifadeyi tekrarlar. Bu ifade INSERT , makalede yayımlanan tüm sütunlar için değerler sağlar. Bu komut eklemelerde çoğaltılır:INSERT INTO <table name> VALUES (c1value, c2value, c3value, ..., cnvalue) |
Daha fazla bilgi için, Transactional Articles - Specify How Changes Is Propagation bölümüne bakınız.
[ @del_cmd = ] N'del_cmd'
Bu makale için replikasyon sırasında kullanılan replikasyon komutu türü silinir. @del_cmdnvarchar(255)'dir ve aşağıdaki değerlerden biri olabilir.
| Value | Açıklama |
|---|---|
NONE |
Hiçbir işlem yapılmaz. |
CALLsp_MSdel_<table> (varsayılan)-veya- CALL <custom_stored_procedure_name> |
Abonede çalıştırılması gereken bir saklanan prosedürü çağırır. Bu çoğaltma yöntemini kullanmak için, @schema_option kullanılarak depolanan prosedürün otomatik oluşturulmasını belirtebilir veya makalenin her abonesinin hedef veritabanında belirtilen saklanan prosedürü oluşturulur.
<custom_stored_procedure> kullanıcı tarafından oluşturulan bir depolanmış prosedürün adıdır.
sp_MSdel_<table> Parametrenin _table kısmı yerine hedef tablonun adını içerir.
@destination_owner belirtildiğinde, hedef tablo adının öncülü olarak eklenir. Örneğin, Abone içindeki şemaya ait tablo ProductCategory için Production parametre şöyle olurduCALL sp_MSdel_ProductionProductCategory. Eşler arası bir replikasyon topolojisindeki bir makale için, <table> bir GUID değeri eklenir. Abone güncellemesi için belirtmek <custom_stored_procedure> desteklenmiyor. |
XCALL sp_MSdel_<table>-veya- XCALL <custom_stored_procedure_name> |
Stil parametreleri alan XCALL bir saklanan prosedürü çağırır. Bu çoğaltma yöntemini kullanmak için, @schema_option kullanılarak depolanan prosedürün otomatik oluşturulmasını belirtebilir veya makalenin her abonesinin hedef veritabanında belirtilen saklanan prosedürü oluşturulur. Aboneleri güncellemek için kullanıcı tarafından oluşturulan bir depolanmış prosedürün belirtilmesine izin verilmez. |
SQL veya NULL |
Bir DELETE ifadeyi çoğaltıyor. Bu DELETE ifade tüm birincil anahtar sütun değerleri ile sağlanır. Bu komut silme sırasında çoğaltılır:DELETE FROM <table name> WHERE pkc1 = pkc1value AND pkc2 = pkc2value AND pkcn = pkcnvalue |
Daha fazla bilgi için, Transactional Articles - Specify How Changes Is Propagation bölümüne bakınız.
[ @upd_cmd = ] N'upd_cmd'
Bu makale için güncellemeler çoğaltırken kullanılan replikasyon komut türü. @upd_cmdnvarchar(255)'dir ve aşağıdaki değerlerden biri olabilir.
| Value | Açıklama |
|---|---|
NONE |
Hiçbir işlem yapılmaz. |
CALL sp_MSupd_<table>-veya- CALL <custom_stored_procedure_name> |
Abonede çalıştırılması gereken bir saklanan prosedürü çağırır. Bu çoğaltma yöntemini kullanmak için, @schema_option kullanılarak depolanan prosedürün otomatik oluşturulmasını belirtebilir veya makalenin her abonesinin hedef veritabanında belirtilen saklanan prosedürü oluşturulur. |
MCALL sp_MSupd_<table>-veya- MCALL <custom_stored_procedure_name> |
Stil parametreleri alan MCALL bir saklanan prosedürü çağırır. Bu çoğaltma yöntemini kullanmak için, @schema_option kullanılarak depolanan prosedürün otomatik oluşturulmasını belirtebilir veya makalenin her abonesinin hedef veritabanında belirtilen saklanan prosedürü oluşturulur.
<custom_stored_procedure> kullanıcı tarafından oluşturulan bir depolanmış prosedürün adıdır.
sp_MSupd_<table> parametrenin kısmının <table> yerine hedef tablosunun adını içerir.
@destination_owner belirtildiğinde, hedef tablo adının öncülü olarak eklenir. Örneğin, Abone içindeki şemaya ait tablo ProductCategory için Production parametre şöyle olurduMCALL sp_MSupd_ProductionProductCategory. Eşler arası bir replikasyon topolojisindeki bir makale için, <table> bir GUID değeri eklenir. Aboneleri güncellemek için kullanıcı tarafından oluşturulan bir depolanmış prosedürün belirtilmesine izin verilmez. |
SCALL sp_MSupd_<table> (varsayılan)-veya- SCALL <custom_stored_procedure_name> |
Stil parametreleri alan SCALL bir saklanan prosedürü çağırır. Bu çoğaltma yöntemini kullanmak için, @schema_option kullanılarak depolanan prosedürün otomatik oluşturulmasını belirtebilir veya makalenin her abonesinin hedef veritabanında belirtilen saklanan prosedürü oluşturulur.
<custom_stored_procedure> kullanıcı tarafından oluşturulan bir depolanmış prosedürün adıdır.
sp_MSupd_<table> Parametrenin _table kısmı yerine hedef tablonun adını içerir.
@destination_owner belirtildiğinde, hedef tablo adının öncülü olarak eklenir. Örneğin, Abone içindeki şemaya ait tablo ProductCategory için Production parametre şöyle olurduSCALL sp_MSupd_ProductionProductCategory. Eşler arası replikasyon topolojisindeki bir makale için, _table bir GUID değeri eklenir. Aboneleri güncellemek için kullanıcı tarafından oluşturulan bir depolanmış prosedürün belirtilmesine izin verilmez. |
XCALL sp_MSupd_<table>-veya- XCALL <custom_stored_procedure_name> |
Stil parametreleri alan XCALL bir saklanan prosedürü çağırır. Bu çoğaltma yöntemini kullanmak için, @schema_option kullanılarak depolanan prosedürün otomatik oluşturulmasını belirtebilir veya makalenin her abonesinin hedef veritabanında belirtilen saklanan prosedürü oluşturulur. Aboneleri güncellemek için kullanıcı tarafından oluşturulan bir depolanmış prosedürün belirtilmesine izin verilmez. |
SQL veya NULL |
Bir UPDATE ifadeyi tekrarlar. Bu UPDATE ifade tüm sütun değerleri ve birincil anahtar sütun değerleri üzerinde sunulur. Bu komut güncellemelerde tekrarlanır:UPDATE <table name> SET c1 = c1value, SET c2 = c2value, SET cn = cnvalue WHERE pkc1 = pkc1value AND pkc2 = pkc2value AND pkcn = pkcnvalue |
Note
, CALL, MCALL, ve SCALL için XCALLsoru dizimleri, aboneye aktarılan veri miktarını değiştirir. Sözdizimi, CALL eklenen ve silinen tüm sütunlar için tüm değerleri geçirir. Sözdizimi SCALL yalnızca etkilenen sütunlar için değerleri iletir. Sözdizim, XCALL değişmiş olsun ya da değişmemiş tüm sütunlar için, sütunun önceki değeri dahil olmak üzere değerleri aktarır. Daha fazla bilgi için, Transactional Articles - Specify How Changes Is Propagation bölümüne bakınız.
[ @creation_script = ] N'creation_script'
Abonelik veritabanında makaleyi oluşturmak için kullanılan isteğe bağlı makale şema bebeğinin yolu ve adı.
@creation_scriptnvarchar(255)'dir ve varsayılan olarak .NULL
[ @description = ] N'description'
Makale için tanımlayıcı bir giriş.
@descriptionnvarchar(255)'dir ve varsayılan olarak .NULL
[ @pre_creation_cmd = ] N'pre_creation_cmd'
Bu makale için anlık görüntü uygularken abonede aynı isimde mevcut bir nesneyi tespit ederse sistemin ne yapması gerektiğini belirtir. @pre_creation_cmdnvarchar(10)'dur ve aşağıdaki değerlerden biri olabilir.
| Value | Açıklama |
|---|---|
none |
Komut kullanmıyor. |
delete |
Anlık görüntü uygulamadan önce hedef tablodan verileri siler. Makale yatay olarak filtrelendiğinde, yalnızca filtre maddesi tarafından belirtilen sütunlardaki veriler silinir. Oracle Publishers için yatay filtre tanımlandığında desteklenmemektedir. |
drop (varsayılan) |
Hedef tabloyu düşürüyor. |
truncate |
Varış tablosunu kısaltıyor. ODBC veya OLE DB aboneleri için geçerli değil. |
[ @filter_clause = ] N'filter_clause'
Yatay filtreyi tanımlayan bir kısıtlama (WHERE) maddesi. Kısıtlama maddesine girerken, WHERE anahtar kelimesini atlayın.
@filter_clausenvarchar(max), varsayılan olarak .NULL Daha fazla bilgi için bkz . Yayımlanan Verileri Filtreleme.
[ @schema_option = ] schema_option
Verilen makale için şema oluşturma seçeneğinin bir bitmaskesi.
@schema_optionvarbinary(8)'dir, varsayılan olarak , NULLve | (Bitwise OR) Bu değerlerden birinin veya birkaçının çarpımı:
Note
Eğer bu değer ise NULL, sistem diğer makale özelliklerine bağlı olarak makale için geçerli bir şema seçeneğini otomatik olarak oluşturur.
Varsayılan şema seçenekleri, makale tipi ile çoğaltma türünün birleşimine göre seçilecek değeri gösterir.
| Value | Açıklama |
|---|---|
0x00 |
Script yapmayı Snapshot Agent kapatır ve @creation_script kullanır. |
0x01 |
Nesne oluşturma betiği (CREATE TABLE, CREATE PROCEDURE, vb.) üretir. Bu değer, depolanmış prosedür makaleleri için varsayılan değerdir. |
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. Bu seçenek ayarlanmasa bile, birincil anahtarlarla ilgili indeksler ve benzersiz kısıtlamalar zaten yayımlanmış bir tabloda tanımlanmışsa oluşturulur. |
0x20
1 |
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 CHECK veya DEFAULT kısıtlama olduğunda, bir UDT sütunu birincil anahtarın parçası ise veya hesaplanan bir sütun bir UDT sütununa referans veriyorsa kullanılamaz. |
0x40 |
Buna karşılık gelen kümelenmemiş indeksler oluşturur. Bu seçenek ayarlanmasa bile, birincil anahtarlarla ilgili indeksler ve benzersiz kısıtlamalar zaten yayımlanmış bir tabloda tanımlanmışsa oluşturulur. |
0x80 |
Birincil anahtar kısıtlamaları çoğaltır. Kısıtlamayla ilgili tüm indeksler de çoğaltılır, seçenekler 0x10 olsa ve 0x40 etkinleştirilmese bile. |
0x100
1 |
Tanımlanmışsa, kullanıcı tetikleyicilerini bir tablo makalesinde çoğaltır. |
0x200
1 |
Yabancı anahtar kısıtlamalarını çoğaltıyor. Referans verilen tablo bir yayının parçası değilse, yayımlanan tablodaki tüm yabancı anahtar kısıtlamaları çoğaltılmaz. |
0x400
1 |
Kontrol kısıtlamalarını çoğaltıyor. |
0x800
1 |
Varsayılan ayarları çoğaltıyor. |
0x1000 |
Sütun düzeyinde derlemeyi çoğaltıyor. Not: Bu seçenek, Oracle Publishers için büyük harf hassasiyetli karşılaştırmaları etkinleştirmek için ayarlanmalıdır. |
0x2000
1 |
Yayınlanmış makale kaynak nesnesine bağlı genişletilmiş özellikleri çoğaltır. |
0x4000 |
BENZERSIZ kısıtlamaları çoğaltıyor. Kısıtlamayla ilgili tüm indeksler de çoğaltılır, seçenekler 0x10 olsa ve 0x40 etkinleştirilmese bile. |
0x8000 |
Bu seçenek, SQL Server 2005 (9.x) Yayıncılar için geçerli değildir. |
0x10000 |
Kısıtlamaları KONTROL DENİ olarak ÇOĞALTMA IÇIN DEĞIL olarak çoğaltıyor, böylece senkronizasyon sırasında kısıtlamalar uygulanmaz. |
0x20000 |
YABANCI ANAHTAR kısıtlamalarını ÇOĞALTMA İÇİN DEĞIL olarak çoğaltıyor, böylece senkronizasyon sırasında kısıtlamalar uygulanmaz. |
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)'te 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 özniteliği varbinary(max) sütunlarda belirtiliyorsa bu seçeneği çoğaltmak için 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 0x800000000 seçeneğe bakınız. |
0x200000000 |
SQL Server 2008 (10.0.x)'de tanıtılan tarih ve zaman veri tiplerini (tarih, saat, tarih zamanıofseti ve tarih zamanı2) önceki SQL Server sürümlerinde desteklenen veri tiplerine 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 0x100000000 seçeneğine bakınız. |
0x1000000000 |
8000 bayttan büyük olan ortak dil çalışma zamanı (CLR) kullanıcı tanımlı türleri (UDT) 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 bölümünü inceleyin. |
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 SPARSE özniteliğini çoğaltıyor. Bu öznitelik hakkında daha fazla bilgi için bkz. Seyrek sütunlar kullan. |
0x40000000000 |
Anlık görüntü ajanı tarafından betik yazmayı etkinleştirerek abone üzerinde bellek optimize edilmiş tablo oluşturulur. |
0x80000000000 |
Bellek optimize edilmiş makaleler için kümelenmiş indeksi kümelenmemiş indekse dönüştürür. |
0x400000000000 |
Tablo(lar)daki kümelenmiş olmayan columnstore indekslerini çoğaltır |
0x800000000000 |
Tablo(lar)daki filtrelenmiş olmayan sütun deposu indekslerini çoğaltır. |
NULL |
Replikasyon otomatik olarak @schema_option'yi varsayılan bir değere ayar, bu değerin değeri diğer makale özelliklerine bağlıdır. Açıklamalar bölümündeki "Varsayılan Şema Seçenekleri" tablosu, makale tipi ve çoğaltma türüne dayalı varsayılan şema seçeneklerini gösterir. SQL Server dışı yayınlar için varsayılan olarak 0x050D3. |
1 Oracle Publishers için desteklenmiyor.
Tüm @schema_option değerleri her tür replikasyon ve makale türü için geçerli değildir. Yorumlar bölümündeki Geçerli Şema Seçenekleri tablosu, makale tipi ile çoğaltma tipinin birleşimine göre seçilebilecek geçerli şema seçeneklerini gösterir.
[ @destination_owner = ] N'destination_owner'
Hedef nesnenin sahibinin adı.
@destination_ownersysname'dir, varsayılan NULLolarak .
@destination_owner belirtilmediğinde, sahibi aşağıdaki kurallara göre otomatik olarak belirlenir:
| Condition | Hedef nesne sahibi |
|---|---|
| Yayın, ilk anlık görüntüyü oluşturmak için yerel modda toplu kopyalama kullanır ve bu sadece SQL Server Abonelerini destekler. | Varsayılan olarak @source_owner değerine geçer. |
| Yayın tarihi olmayan bir SQL Server Publisher. | Varsayılan olarak hedef veritabanının sahibine akılıyor. |
| Yayın, ilk anlık görüntüyü oluşturmak için karakter modunda toplu kopyalama kullanır ve bu da SQL Server Aboneleri olmayan programları destekler. | Atanmamış. |
SQL Server olmayan aboneleri desteklemek için @destination_owner .NULL
[ @status = ] durum
Makalenin aktif olup olmadığını ve değişikliklerin nasıl yayılacağına dair ek seçenekleri belirtir. @statusçok küçük ve | (Bitwise OR) bu değerlerden birinin veya birkaçının çarpımı.
| Value | Açıklama |
|---|---|
1 |
Makale aktif. |
8 |
Sütun adını ifadelerde INSERT içerir. |
16 (varsayılan) |
Parametrizlenmiş ifadeler kullanır. |
24 |
Sütun adını ifadelerde INSERT içerir ve parametreli ifadeler kullanır. |
64 |
Yalnızca bilgilendirme amacıyla tanımlanır. Desteklenmiyor. Gelecekteki uyumluluk garanti edilmemektedir. |
Örneğin, parametreli ifadeler kullanan aktif bir makale bu sütunda değer alır 17 . Değeri, 0 makalenin etkin olmadığı ve ek özelliklerin tanımlanmadığı anlamına gelir.
[ @source_owner = ] N'source_owner'
Kaynak nesnenin sahibi.
@source_ownersysname'dir, varsayılan olarak .NULL
@source_owner Oracle Publishers için belirtilmelidir.
[ @sync_object_owner = ] N'sync_object_owner'
Yayınlanan makaleyi tanımlayan görüşün sahibi.
@sync_object_ownersysname'dir ve varsayılan olarak ' NULLdir.
[ @filter_owner = ] N'filter_owner'
Filtrenin sahibi.
@filter_ownersysname'dir ve varsayılan olarak ' NULLdir.
[ @source_object = ] N'source_object'
Yayınlanacak veritabanı nesnesi.
@source_objectsysname'dir, varsayılan olarak .NULL
Eğer @source_tableNULLise, @source_object olamazNULL.
@source_object@source_table yerine kullanılmalı. Anlık görüntü veya işlemsel çoğaltma kullanılarak yayınlanabilecek nesne türleri hakkında daha fazla bilgi için Yayın Veri ve Veritabanı Nesneleri sayfasına bakınız.
[ @artid = ] artid ÇIKIŞ
Yeni makalenin makale kimliği.
@artid, OUTPUT tipli bir parametredir.
[ @auto_identity_range = ] N'auto_identity_range'
Bir yayının oluşturulduğu anda otomatik kimlik aralığı işlemesini etkinleştirir ve devre dışı bırakır. @auto_identity_rangenvarchar(5)'dir ve aşağıdaki değerlerden biri olabilir:
| Value | Açıklama |
|---|---|
true |
Otomatik kimlik aralığı yönetimini sağlar |
false |
Otomatik kimlik aralığı yönetimini devre dışı bırakır |
NULL (varsayılan) |
Kimlik aralığı işlemesi @identityrangemanagementoption tarafından belirlenir. |
Note
@auto_identity_range kullanımdan kaldırılmıştır ve yalnızca geriye dönük uyumluluk için sağlanmıştır. Kimlik aralığı yönetim seçeneklerini belirtmek için @identityrangemanagementoption kullanmalısınız. Daha fazla bilgi için bkz. Kimlik Sütunlarını Çoğaltma.
[ @pub_identity_range = ] pub_identity_range
Makalede @identityrangemanagementoptionotomatik ya da doğru olarak ayarlanıp ayarlanmadığı Publisher aralığı @auto_identity_range boyutunu kontrol eder.
@pub_identity_rangebüyük ve varsayılan olarak .NULL
@pub_identity_range Oracle Publishers için desteklenmiyor.
[ @identity_range = ] identity_range
Abone Kullanıcı'da @identityrangemanagementoptionotomatik veya @auto_identity_rangedoğru olarak ayarlanmışsa, aralık boyutunu kontrol eder.
@identity_rangebüyük ve varsayılan olarak .NULL
@auto_identity_rangedoğru olarak ayarlandığında kullanılır.
@identity_range Oracle Publishers için desteklenmiyor.
[ @threshold = ] eşik
Distribution Agent'ın yeni bir kimlik aralığı atamasını kontrol eden yüzde değeri.
@threshold'de belirtilen değerlerin yüzdesi kullanıldığında, Distribution Agent yeni bir kimlik aralığı oluşturur.
@thresholdint, varsayılan olarak .NULL
@identityrangemanagementoptionotomatik olarak ayarlandığında veya @auto_identity_rangedoğru olarak ayarlandığında kullanılır.
@threshold Oracle Publishers için desteklenmiyor.
[ @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.
0bir makale eklemenin anlık görüntünün geçersiz olmasına yol açmadığı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 herhangi bir değişiklik yapılmaz.1Bir makale eklemenin snapshot'un geçersiz olmasına yol açabileceğini belirtir ve yeni bir snapshot gerektiren abonelikler varsa, mevcut snapshot'un modası geçersiz olarak işaretlenmesine ve yeni bir snapshot oluşturulmasına izin verir.
[ @use_default_datatypes = ] use_default_datatypes
Oracle Publisher'tan bir makale yayımlanırken varsayılan sütun veri tipi eşlemelerinin kullanılıp kullanılmadığı.
@use_default_datatypesbittir ve varsayılan olarak .1
1= varsayılan makale sütun eşlemeleri kullanılır. Varsayılan veri tipi eşlemeleri sp_getdefaultdatatypemapping çalıştırılarak görüntülenebilir.0= özel makale sütun eşlemeleri tanımlanır ve bu nedenle sp_articleview tarafındansp_addarticleçağrılmaz.
@use_default_datatypes olarak ayarlandığında0, her sütun eşlemesi varsayılan olarak değiştirildiğinde sp_changearticlecolumndatatype bir kez çalıştırmanız gerekir. Tüm özel sütun eşlemeleri tanımlandıktan sonra, sp_articleview çalıştırmalısınız.
Note
Bu parametre yalnızca Oracle Publishers için kullanılmalıdır.
@use_default_datatypes'yi0 bir SQL Server Publisher için ayarlamak hata oluşturur.
[ @identityrangemanagementoption = ] N'identityrangemanagementoption'
Makale için kimlik aralığı yönetiminin nasıl işlenildiğini belirtir. @identityrangemanagementoptionnvarchar(10)'dur ve aşağıdaki değerlerden biri olabilir.
| Value | Açıklama |
|---|---|
none |
Replikasyon açıkça kimlik aralığı yönetimi yapmaz. Bu seçenek, yalnızca önceki SQL Server sürümleriyle geriye dönük uyumluluk için önerilir. Akran çoğaltma için izin verilmiyor. |
manual |
Kimlik sütununu NOT FOR REPLICATION ile işaretler ve böylece manuel kimlik aralığı işlemesini mümkün kılar. |
auto |
Kimlik aralıklarının otomatik yönetimini belirtir. |
NULL (varsayılan) |
none
değeri olmadığında varsayılan true olarak olur. Eşler arası topolojide varsayılan olarak olarak manual kullanılır (@auto_identity_range göz ardı edilir). |
Geriye doğru uyumluluk için, @identityrangemanagementoption'ninNULLdeğeri , @auto_identity_range değeri işaretlenir. Ancak, @identityrangemanagementoptionNULLdeğeri değilse, @auto_identity_range değeri göz ardı edilir.
Daha fazla bilgi için bkz. Kimlik Sütunlarını Çoğaltma.
[ @publisher = ] N'publisher'
SQL Server olmayan bir Yayıncı belirtir.
@publishersysname'dir ve varsayılan olarak .NULL
@publisher bir makaleyi SQL Server Publisher eklerken kullanılmamalıdır.
[ @fire_triggers_on_snapshot = ] N'fire_triggers_on_snapshot'
Eğer çoğaltılan kullanıcı tetikleyicileri ilk anlık görüntü uygulandığında çalıştırılır.
@fire_triggers_on_snapshotnvarchar(5)'dir ve varsayılan olarak .false
true bu, anlık görüntü uygulandığında çoğaltılan tablodaki kullanıcı tetikleyicilerinin çalıştırılması anlamına gelir. Tetikleyicilerin çoğaltılması için, @schema_option'nin bitmask değeri şu değeri 0x100içermelidir:
Dönüş kodu değerleri
0 (başarı) veya 1 (başarısızlık).
Remarks
sp_addarticle anlık görüntü çoğaltma veya işlemsel çoğaltmada kullanılır.
Varsayılan olarak, sütun veri tipi replikasyon tarafından desteklenmediğinde replikasyon kaynak tabloda hiçbir sütun yayınlamaz. Böyle bir sütun yayınlamanız gerekiyorsa, sütunu eklemek için sp_articlecolumn çalıştırmalısınız.
Eşler arası işlem tekrarını destekleyen bir yayına makale eklendiğinde, aşağıdaki kısıtlamalar geçerlidir:
Tüm logbazlı makaleler için parametrizlenmiş ifadeler belirtilmelidir.
16dahil etmelisiniz.Hedef tablonun adı ve sahibi, kaynak tabloyla eşleşmelidir.
Makale yatay veya dikey olarak filtrelenemez.
Otomatik kimlik aralığı yönetimi desteklenmiyor. @identityrangemanagementoption için manuel değerini belirtmelisiniz.
Tabloda bir zaman damgası sütunu varsa, @schema_option içinde 0x08 eklemeniz gerekir ki sütunu zaman damgası olarak çoğaltabilsin.
SQL, @upd_cmd ve @del_cmd için bir değer belirtilemez.
Daha fazla bilgi için Peer-to-Peer - İşlemsel Çoğaltma sayfasına bakınız.
Nesneleri yayınladığınızda, tanımları Abonelere kopyalanır. Bir veritabanı nesnesi yayınlıyorsanız, tüm referans alınan nesneleri yayınlamalısınız. Örneğin, bir tabloya bağlı bir görünüm yayınlarsanız, tabloyu da yayınlamalısınız.
Eğer @vertical_partitiondoğru olarak ayarlanmışsa, sp_addarticle görüşün oluşturulması sp_articleview çağrılana kadar (son sp_articlecolumn eklendikten sonra) ertelener.
Yayın aboneliklerin güncellenmesine izin verirse ve yayınlanan tabloda bir uniqueidentifier sütunu yoksa, sp_addarticle otomatik olarak bir uniqueidentifier sütunu tabloya ekler.
SQL Server örneği olmayan bir aboneye çoğaltıldığında (heterojen replikasyon), , , ve INSERT komutlar için yalnızca Transact-SQL ifade desteklenir.UPDATEDELETE
Log okuyucu ajanı çalışırken, bir makaleyi eşler arası yayına eklemek, log okuyucu ajanı ile makaleyi ekleyen süreç arasında çıkmaza yol açabilir. Bu sorunu önlemek için, bir makaleyi eşler arası yayına eklemeden önce, makaleyi eklediğiniz düğümde log okuyucu ajanını durdurmak için Replikasyon Monitörü kullanın. Makaleyi ekledikten sonra log okuyucu ajanını yeniden başlatın.
@del_cmd ile NONE veya @ins_cmdNONEayarladığında, sınırlı bir güncelleme gerçekleştiğinde komutların UPDATE yayılması da etkilenebilir. (Sınırlı güncelleme, yayıncının abone üzerinde çift olarak çoğaltılan UPDATEDELETE/ bir tür INSERT beyanıdır.)
Varsayılan şema seçenekleri
Bu tablo, kullanıcı tarafından belirtilmemişse replikasyon ile belirlenen varsayılan değeri tanımlar; bu değer@schema_options bu değer çoğaltma tipine (üstte gösterilen) ve makale tipine (ilk sütunda gösterilen) bağlıdır.
| Makale türü | İşlemsel replikasyon | Anlık görüntü replikasyonu |
|---|---|---|
| Sadece toplu şema | 0x01 |
0x01 |
| Sadece func şeması | 0x01 |
0x01 |
| Yalnızca indeksli görünüm şeması | 0x01 |
0x01 |
| Indeksli görünüm logbased | 0x30F3 |
0x3071 |
| Indeksli görünüm logbase manualboth | 0x30F3 |
0x3071 |
| Indexed View logbased manualfilter | 0x30F3 |
0x3071 |
| indeksli görünüm logbased manualview | 0x30F3 |
0x3071 |
| logbased | 0x30F3 |
0x3071 |
| logbased manualfilter | 0x30F3 |
0x3071 |
| logbased manualview | 0x30F3 |
0x3071 |
| proc yöneticisi | 0x01 |
0x01 |
| Sadece proc şeması | 0x01 |
0x01 |
| serileştirilebilir proc yöneticisi | 0x01 |
0x01 |
| Sadece şemayı görüntüleme | 0x01 |
0x01 |
Note
Bir yayın kuyruklu güncelleme için etkinleştirilmişse, tabloda gösterilen varsayılan değere '@schema_option değeri 0x80 eklenir. SQL Server olmayan bir yayın için varsayılan @schema_option .0x050D3
Geçerli şema seçenekleri
Bu tablo, çoğaltma tipine (üstte gösterilmiştir) ve makale türüne (ilk sütunda gösterilmiştir) dayalı olarak @schema_option'nin izin verilen değerlerini açıklar.
| Makale türü | İşlemsel replikasyon | Anlık görüntü replikasyonu |
|---|---|---|
| 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 |
| Indeksli görünüm 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 |
| indeksli görünüm logbased manualview | Tüm seçenekler | Tüm seçenekler hariç 0x02 |
| Indeksli görünüm logbase manualboth | Tüm seçenekler | Tüm seçenekler hariç 0x02 |
| proc yöneticisi |
0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x80000000x100000000x200000000x40000000, ve0x80000000 |
0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x80000000x100000000x200000000x40000000, ve0x80000000 |
| serileştirilebilir proc yöneticisi |
0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x80000000x100000000x200000000x40000000, ve0x80000000 |
0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x80000000x100000000x200000000x40000000, ve0x80000000 |
| Sadece proc şeması |
0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x80000000x100000000x200000000x40000000, ve0x80000000 |
0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x80000000x100000000x200000000x40000000, ve0x80000000 |
| Sadece şemayı görüntüleme |
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 |
| Sadece func şeması |
0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x80000000x100000000x200000000x40000000, ve0x80000000 |
0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x80000000x100000000x200000000x40000000, ve0x80000000 |
| Yalnızca indeksli görünüm şeması |
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, ve 0x80000x80 @schema_option etkin olması gerekir. SQL Server yayınlar için desteklenen @schema_option değerleri şunlardır: 0x01, 0x02, , 0x10, 0x400x800x10000x4000, ve .0X8000
Examples
DECLARE @publication AS sysname;
DECLARE @table AS sysname;
DECLARE @filterclause AS nvarchar(500);
DECLARE @filtername AS nvarchar(386);
DECLARE @schemaowner AS sysname;
SET @publication = N'AdvWorksProductTran';
SET @table = N'Product';
SET @filterclause = N'[DiscontinuedDate] IS NULL';
SET @filtername = N'filter_out_discontinued';
SET @schemaowner = N'Production';
-- Add a horizontally and vertically filtered article for the Product table.
-- Manually set @schema_option to ensure that the Production schema
-- is generated at the Subscriber (0x8000000).
EXEC sp_addarticle
@publication = @publication,
@article = @table,
@source_object = @table,
@source_owner = @schemaowner,
@schema_option = 0x80030F3,
@vertical_partition = N'true',
@type = N'logbased',
@filter_clause = @filterclause;
-- (Optional) Manually call the stored procedure to create the
-- horizontal filtering stored procedure. Since the type is
-- 'logbased', this stored procedures is executed automatically.
EXEC sp_articlefilter
@publication = @publication,
@article = @table,
@filter_clause = @filterclause,
@filter_name = @filtername;
-- Add all columns to the article.
EXEC sp_articlecolumn
@publication = @publication,
@article = @table;
-- Remove the DaysToManufacture column from the article
EXEC sp_articlecolumn
@publication = @publication,
@article = @table,
@column = N'DaysToManufacture',
@operation = N'drop';
-- (Optional) Manually call the stored procedure to create the
-- vertical filtering view. Since the type is 'logbased',
-- this stored procedures is executed automatically.
EXEC sp_articleview
@publication = @publication,
@article = @table,
@filter_clause = @filterclause;
GO
Permissions
Yalnızca sistem yöneticisi sabit sunucu rolünün veya sabit db_owner veritabanı rolünün sp_addarticleüyeleri çalıştırabilir.
İlgili içerik
- Makale Tanımlama
- sys.sp_articlecolumn (Transact-SQL)
- sys.sp_articlefilter (Transact-SQL)
- sys.sp_articleview (Transact-SQL)
- sys.sp_changearticle (Transact-SQL)
- sys.sp_droparticle (Transact-SQL)
- sys.sp_helparticle (Transact-SQL)
- sys.sp_helparticlecolumns (Transact-SQL)
- Replikasyon saklı yordamları (Transact-SQL)
- Veri ve Veritabanı Nesnelerini Yayımlama