sp_addsubscription (Transact-SQL)
yayın bir abonelik ekler ve abone durumunu ayarlar.Bu saklı yordam, yayın veritabanı üzerinde yayımcı adresindeki yürütülür.
Sözdizimi
sp_addsubscription [ @publication = ] 'publication'
[ , [ @article = ] 'article']
[ , [ @subscriber = ] 'subscriber' ]
[ , [ @destination_db = ] 'destination_db' ]
[ , [ @sync_type = ] 'sync_type' ]
[ , [ @status = ] 'status'
[ , [ @subscription_type = ] 'subscription_type' ]
[ , [ @update_mode = ] 'update_mode' ]
[ , [ @loopback_detection = ] 'loopback_detection' ]
[ , [ @frequency_type = ] frequency_type ]
[ , [ @frequency_interval = ] frequency_interval ]
[ , [ @frequency_relative_interval = ] frequency_relative_interval ]
[ , [ @frequency_recurrence_factor = ] frequency_recurrence_factor ]
[ , [ @frequency_subday = ] frequency_subday ]
[ , [ @frequency_subday_interval = ] frequency_subday_interval ]
[ , [ @active_start_time_of_day = ] active_start_time_of_day ]
[ , [ @active_end_time_of_day = ] active_end_time_of_day ]
[ , [ @active_start_date = ] active_start_date ]
[ , [ @active_end_date = ] active_end_date ]
[ , [ @optional_command_line = ] 'optional_command_line' ]
[ , [ @reserved = ] 'reserved' ]
[ , [ @enabled_for_syncmgr= ] 'enabled_for_syncmgr' ]
[ , [ @offloadagent= ] remote_agent_activation]
[ , [ @offloadserver= ] 'remote_agent_server_name' ]
[ , [ @dts_package_name= ] 'dts_package_name' ]
[ , [ @dts_package_password= ] 'dts_package_password' ]
[ , [ @dts_package_location= ] 'dts_package_location' ]
[ , [ @distribution_job_name= ] 'distribution_job_name' ]
[ , [ @publisher = ] 'publisher' ]
[ , [ @backupdevicetype = ] 'backupdevicetype' ]
[ , [ @backupdevicename = ] 'backupdevicename' ]
[ , [ @mediapassword = ] 'mediapassword' ]
[ , [ @password = ] 'password' ]
[ , [ @fileidhint = ] fileidhint ]
[ , [ @unload = ] unload ]
[ , [ @subscriptionlsn = ] subscriptionlsn ]
[ , [ @subscriptionstreams = ] subscriptionstreams ]
[ , [ @subscriber_type = ] subscriber_type ]
Bağımsız değişkenler
[ @publication=\] 'publication'
Is the name of the publication.publication is sysname, with no default.[ @article=\] 'article'
Is the article to which the publication is subscribed.article is sysname, with a default of all.If all, a subscription is added to all articles in that publication.Yalnızca değerleri tüm veya null Oracle yayımcılar için desteklenir.[ @subscriber=\] 'subscriber'
Is the name of the Subscriber.subscriber is sysname, with a default of NULL.[ @destination_db=\] 'destination_db'
Is the name of the destination database in which to place replicated data.destination_db is sysname, with a default of NULL.null, destination_db olan küme adına yayın veritabanı.Oracle yayımcılar için destination_db belirtilmelidir.Bir olmayan - sql Server abone için değeri belirtmek (varsayılan hedef) için destination_db.[ @sync_type=\] 'sync_type'
Is the subscription synchronization type.sync_type is nvarchar(255), and can be one of the following values:Değer
Açıklama
Yok
Abone şema ve yayımlanmış tablolar için ilk veri zaten.
NotBu seçenek kalmıştır.Use yalnızca çoğaltma desteği onun yerine.Otomatik (varsayılan)
Şema ve yayımlanmış tablolar için ilk veri için abone ilk transfer edilir.
yalnızca çoğaltma desteği
Otomatik nesil abone adresindeki makale özel saklı yordamları ve Tetikleyicileri güncelleştirme abonelikleri destekleyen uygun sağlar.Abone zaten şema ve yayımlanmış tablolar için ilk veri olduğunu varsayar.Bir eşler arası işlem çoğaltma topolojisi yapılandırırken, tüm düğümler topolojisi veri aynı olmasını sağlayın.Daha fazla bilgi için bkz: Nasıl yapılır: Eşler arası işlem çoğaltma (çoğaltma Transact-sql programlama) yapılandırma.
Abonelikleri için sql Server yayınları için desteklenmiyor.
yedek ile başlatılamıyor
Şema ve yayımlanmış tablolar için ilk veri bir yedek kopyadan alınan yayın veritabanı.Abone erişimi olduğunu varsayar bir yedek yayın veritabanı.Yedek ve ortam türü yedekleme konumu olarak belirtilmiş backupdevicename ve backupdevicetype.Bu seçeneği kullanırken, eşler arası işlem çoğaltma topolojisi yapılandırma sırasında sessiz modda olması gerekmez.
Abonelikleri için sql Server yayınları için desteklenmiyor.
lsn başlatılamıyor
Bir eşler arası işlem çoğaltma topolojisi düğüm eklerken kullanılan.İle kullanılan @ subscriptionlsn yeni düğüm için tüm ilgili hareketler çoğaltılır emin olmak için.Abone zaten şema ve yayımlanmış tablolar için ilk veri olduğunu varsayar.Daha fazla bilgi için bkz: Nasıl yapılır: Eşler arası işlem çoğaltma (çoğaltma Transact-sql programlama) yapılandırma.
Not
Sistem tablolarını ve veri her zaman transfer edilir.
[ @status=\] 'status'
Is the subscription status.status is sysname, with a default value of NULL.Bu parametre açık olarak ayarlandığında, çoğaltma otomatik olarak onu şu değerlerden birini küme.Değer
Açıklama
Etkin
Abonelik başlatıldı ve değişiklikleri kabul etmek hazır.Bu seçenek, küme , değeri sync_type olan yok, yedek ile başlatılamıyor, veya yalnızca çoğaltma desteği.
Abone
Abonelik başlatılması gerekiyor.Bu seçenek, küme , değeri sync_type olan Otomatik.
[ @subscription_type=\] 'subscription_type'
Is the type of subscription.subscription_type is nvarchar(4), with a default of push.Can be gönderme or çekme.The Distribution Agents of push subscriptions reside at the Distributor, and the Distribution Agents of pull subscriptions reside at the Subscriber.subscription_type can be pull to create a named pull subscription that is known to the Publisher.Daha fazla bilgi için bkz: Yayınlar için abone olma.Not
Anonim abonelikleri gerek bunu kullanmak saklı yordam.
[ @update_mode=\] 'update_mode'
Is the type of update.update_mode is nvarchar(30), and can be one of these values.Değer
Açıklama
salt okunur (varsayılan)
Abonelik salt okunur durumdadır.Abone adresindeki değişiklikler gönderilmez Yayımcı.
Eşitleme tran
Sağlar için hemen güncelleştirme abonelikleri destekler.Oracle yayımcılar için desteklenmiyor.
Kuyruğa atılmış tran
Sağlayan abonelik güncelleştirme sıraya için.Veri değişiklikleri Abone tarafında yapılan, bir kuyrukta saklanır ve daha sonra için yayımcı yayılır.Oracle yayımcılar için desteklenmiyor.
Yük devretme
Abonelik hemen bir yük devretme kuyruğa alınmış güncelleştirme ile güncelleştirmek için etkinleştirir.Veri değişiklikleri Abone tarafında yapılan ve Yayımcı'a hemen yayılır.Yayımcı ve abone bağlıysanız, abone ve Yayımcı kesilince kadar veri değişiklikleri Abone tarafında yapılan bir kuyrukta saklanır böylece güncelleştirme modu değiştirilebilir.Oracle yayımcılar için desteklenmiyor.
Kuyruğa atılmış yük devretme
Kuyruğa alınmış güncelleştirme aboneliği olarak abonelik için hemen güncelleştirme modunu değiştirme olanağı sağlar.Veri değişiklikleri Abone tarafında yapılan ve abone ve Yayımcı arasında bir bağlantı kurulana kadar bir kuyrukta saklanır.Sürekli bir bağlantı kurulduğunda anında güncelleme güncelleştirme modu değiştirilebilir.Oracle yayımcılar için desteklenmiyor.
Note that the values sync tran and queued tran are not allowed if the publication being subscribed to allows DTS.
[ @loopback_detection=\] 'loopback_detection'
Specifies if the Distribution Agent sends transactions that originated at the Subscriber back to the Subscriber.loopback_detection is nvarchar(5), and can be one of these values.Değer
Açıklama
TRUE
Dağıtım Aracısı başa dön abone abone adresindeki kaynaklanan hareketler göndermez.Çift yönlü ile işlem kullanılan çoğaltma.Daha fazla bilgi için bkz: Çift yönlü işlem çoğaltma.
yanlış
Dağıtım Aracısı başa dön abone abone adresindeki kaynaklanan hareketleri gönderir.
Null(default)
Otomatik olarak küme için doğru için bir SQL Server abone ve yanlış için bir olmayan-SQL Server abone.
[ @frequency_type=\] frequency_type
Is the frequency with which to schedule the distribution task.frequency_type is int, and can be one of these values.Değer
Açıklama
1
Birisaat
2
İsteğe bağlı
4
Günlük
8
Haftalık
16
Aylık
32
Aylık göreli
64 (varsayılan)
Otomatik başlatma
128
Yinelenen
[ @frequency_interval=\] frequency_interval
Is the value to apply to the frequency set by frequency_type.frequency_interval is int, with a default of NULL.[ @frequency_relative_interval=\] frequency_relative_interval
Olan tarih Dağıtım Aracısı.This parameter is used when frequency_type is set to 32 (monthly relative).frequency_relative_interval is int, and can be one of these values.Değer
Açıklama
1
First
2
İkinci
4
Üçüncü
8
Dördüncü
16
Last
Null(default)
[ @frequency_recurrence_factor=\] frequency_recurrence_factor
Is the recurrence factor used by frequency_type.frequency_recurrence_factor is int, with a default of NULL.[ @frequency_subday=\] frequency_subday
Is how often, in minutes, to reschedule during the defined period.frequency_subday is int, and can be one of these values.Değer
Açıklama
1
Bir kez
2
İkinci
4
Dakika
8
Saat
NULL
[ @frequency_subday_interval=\] frequency_subday_interval
Is the interval for frequency_subday.frequency_subday_interval is int, with a default of NULL.[ @active_start_time_of_day=\] active_start_time_of_day
Is the time of day when the Distribution Agent is first scheduled, formatted as HHMMSS.active_start_time_of_day is int, with a default of NULL.[ @active_end_time_of_day=\] active_end_time_of_day
Is the time of day when the Distribution Agent stops being scheduled, formatted as HHMMSS.active_end_time_of_day is int, with a default of NULL.[ @active_start_date=\] active_start_date
Is the date when the Distribution Agent is first scheduled, formatted as YYYYMMDD.active_start_date is int, with a default of NULL.[ @active_end_date=\] active_end_date
Is the date when the Distribution Agent stops being scheduled, formatted as YYYYMMDD.active_end_date is int, with a default of NULL.[ @optional_command_line=\] 'optional_command_line'
Is the optional command prompt to execute.optional_command_line is nvarchar(4000), with a default of NULL.[ @reserved=\] 'reserved'
Yalnızca bilgi amaçlı olarak belirtilmiştir. Desteklenmez. Gelecekteki uyumluluk garanti edilmez.[ @enabled_for_syncmgr=\] 'enabled_for_syncmgr'
Abonelik yoluyla mı eşitlenebilir olup Microsoft Windows Eşitleme Yöneticisi. enabled_for_syncmgr olan nvarchar(5), varsayılan değer false.If false, the subscription is not registered with Windows Synchronization Manager.If true, the subscription is registered with Windows Synchronization Manager and can be synchronized without starting SQL Server Management Studio.Oracle yayımcılar için desteklenmiyor.[ @offloadagent= ] 'remote_agent_activation'
Specifies that the agent can be activated remotely.remote_agent_activation is bit with a default of 0.Not
Bu parametre onaylanmaz ve yalnızca komut dosyaları geriye dönük uyumluluk için korunur.
[ @offloadserver= ] 'remote_agent_server_name'
Specifies the network name of server to be used for remote activation.remote_agent_server_nameis sysname, with a default of NULL.[ @ dts_package_name=] 'dts_package_name'
Specifies the name of the Data Transformation Services (DTS) package.dts_package_name is a sysname with a default of NULL.Örneğin, paket olarak DTSPub_Package belirtmek için parametre olacaktır @dts_package_name = N'DTSPub_Package'.Bu parametre, gönderme abonelikleri için kullanılabilir.Bir istek temelli abonelik dts paket bilgileri eklemek için sp_addpullsubscription_agent.[ @ dts_package_password=] 'dts_package_password'
Specifies the password on the package, if there is one.dts_package_password is sysname with a default of NULL.Not
Size bir parola belirtmelisiniz dts_package_name belirtilir.
[ @ dts_package_location=] 'dts_package_location'
Specifies the package location.dts_package_location is a nvarchar(12), with a default of DISTRIBUTOR.Paket konumunu olabilir dağıtımcı veya abone.[ @distribution_job_name= ] 'distribution_job_name'
Yalnızca bilgi amaçlı olarak belirtilmiştir. Desteklenmez. Gelecekteki uyumluluk garanti edilmez.[ @ publisher =] 'publisher'
Specifies a non-Microsoft SQL Server Publisher.publisher is sysname, with a default of NULL.Not
publisheriçin belirtilmemiş bir SQL Server Yayımcı.
[ @ backupdevicetype=] 'backupdevicetype'
Specifies the type of backup device used when initializing a Subscriber from a backup.backupdevicetype is nvarchar(20), and can be one of these values:Değer
Açıklama
mantıksal (varsayılan)
yedek aygıtı Mantıksal bir aygıttır.
Disk
yedek aygıtı Disk sürücüsüdür.
Teyp
yedek aygıtı Teyp sürücü
backupdevicetype is only used when sync_methodis set to initialize_with_backup.
[ @ backupdevicename=] 'backupdevicename'
Specifies the name of the device used when initializing a Subscriber from a backup.backupdevicename is nvarchar(1000), with a default of NULL.[ @ mediapassword=] 'mediapassword'
Specifies a password for the media set if a password was set when the media was formatted.mediapassword is sysname, with a default value of NULL.Not
Bu özellik Microsoft SQL Server'ın ilerideki bir sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmaktan kaçının ve bu özelliği kullanmakta olan uygulamalarda değişiklik yapmayı planlayın.
[ @ parola=] 'password'
Specifies a password for the backup if a password was set when the backup was created.passwordis sysname, with a default value of NULL.[ @ fileidhint=] fileidhint
Identifies an ordinal value of the backup set to be restored.fileidhint is int, with a default value of NULL.[ @ unload=] unload
Specifies if a tape backup device should be unloaded after the initialization from back is complete.unload is bit, with a default value of 1.1 specifies that the tape should be unloaded.unload is only used when backupdevicetype is tape.[ @ subscriptionlsn=] subscriptionlsn
Bir düğüme bir eşler arası işlem çoğaltma topolojisi değişiklikleri teslim etme, bir abonelik başlayacağı günlük sıra numarası (SSN) belirtir.İle kullanılan bir @ sync_type değeri başlatma lsn dan yeni bir düğüm için tüm ilgili hareketler çoğaltılır emin olmak için.Daha fazla bilgi için bkz: Nasıl yapılır: Eşler arası işlem çoğaltma (çoğaltma Transact-sql programlama) yapılandırma.[ @subscriptionstreams= ] subscriptionstreams
Is the number of connections allowed per Distribution Agent to apply batches of changes in parallel to a Subscriber, while maintaining many of the transactional characteristics present when using a single thread.subscriptionstreams is tinyint, with a default value of NULL.Bir aralık bulunan değerleri 1 ile 64 desteklenir.Bu parametre için desteklenen olmayan-SQL Server aboneleri, Oracle yayımcılar veya eşler arası abonelikleri.[ @subscriber_type=\] subscriber_type
Is the type of Subscriber.subscriber_type is tinyint, and can be one of these values.Değer
Açıklama
0 (varsayılan)
SQL Server Abone
1
odbc veri kaynak sunucu
2
Microsoft Jet veritabanı
3
ole db sağlayıcı
Dönüş Kodu Değerleri
0 (başarılı) veya 1 (başarısız)
Açıklamalar
sp_addsubscription anlık görüntü çoğaltması çoğaltması çoğaltma ve işlem çoğaltma kullanılır.
Zaman sp_addsubscription üye tarafından yürütülen sysadmin sabit sunucu rolü oluşturmak için bir gönderme temelli abonelik, Dağıtım Aracısı işi örtük olarak oluşturulur ve sql Server Agent hizmet hesabı altında çalışır.Öneririz, yürütmek sp_addpushsubscription_agent farklı, özel aracı Windows hesabı için kimlik bilgileri bilgilerini belirtin ve @ job_login ve @ job_password.Daha fazla bilgi için bkz: Çoğaltma aracısı güvenlik modeli.
sp_addsubscription yayınları için odbc ve ole db aboneleri erişimi engeller:
Yerel ile oluşturulan sync_method çağrısında sp_addpublication.
Eklenme makaleleri içeren yayın ile sp_addarticle saklı yordam olan bir pre_creation_cmd parametre değeri 3 (kes).
küme girişimi update_mode için eşitleme tran.
Parametreli deyimleri kullanmak üzere yapılandırılmış bir makale vardır.
Bir yayın varsa, buna ek olarak, allow_queued_tran seçeneği küme (Yayımcı tarafında uygulanan olabilir kadar hangi etkinleştirir abone adresindeki değişiklikler queuing) true olarak, bir makalenin zaman damgası sütun out olarak vermeyecekleri timestamp, ve o sütun üzerinde değişiklikler gönderilir abone.Abone oluşturur ve zaman damgası sütun değerini güncelleştirir.Bir odbc veya ole db abone olmak olmak, sp_addsubscription sahip bir yayına abone olmak olmak çalışılır, başarısız olur allow_queued_tran küme için doğru ve zaman damgası sütunları da içeren makaleler.
Bir abone olmak olmaklik bir dts paketini kullanmak için ayarlanmış olan bir yayına abone olmak olmak olamazsınız allow_transformable_subscriptions.Tablo yayından hem bir dts abonelik ve abonelik dts çoaltılması gereken iki ayrı yayın oluşturulacak vardır: bir abonelik her tür.
Örnek
-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables
-- on the command line and in SQL Server Management Studio, see the
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".
DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
SET @publication = N'AdvWorksProductTran';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorks2008R2Replica';
--Add a push subscription to a transactional publication.
USE [AdventureWorks2008R2]
EXEC sp_addsubscription
@publication = @publication,
@subscriber = @subscriber,
@destination_db = @subscriptionDB,
@subscription_type = N'push';
--Add an agent job to synchronize the push subscription.
EXEC sp_addpushsubscription_agent
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@job_login = $(Login),
@job_password = $(Password);
GO
İzinler
Yalnızca üyeleri sysadmin sabit sunucu rolü veya db_owner sabit veritabanı rolü olabilir yürütmek sp_addsubscription.Çekme abonelikleri için yayın erişim listesi oturumları ile kullanıcıların yapabilecekleri yürütmek sp_addsubscription.
Ayrıca bkz.