Aracılığıyla paylaş


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.

Konu bağlantısı simgesiTransact-sql sözdizimi kuralları

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.

    NotNot
    Bu 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.