Udostępnij za pośrednictwem


sp_addsubscription (Transact-SQL)

Dodaje subskrypcję do publikacja i ustawia stan subskrybent.Ta procedura przechowywana jest wykonywana przez wydawcę na baza danych publikacja.

Topic link iconKonwencje składni języka Transact-SQL

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 ]

Argumenty

  • [@ publikacja =] ' publication"
    Is the name of the publication.publication is sysname, with no default.

  • [@ artykuł =] ' article"
    Is the article to which the publication is subscribed.article is sysname, with a default of all.Jeśli dla wszystkich subskrypcja jest dodawany do wszystkich artykułów, w tej publikacja.Oracle wydawcy są obsługiwane tylko wartości wszystkich lub wartość NULL.

  • [@ subskrybent =] ' 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.Jeśli NULL, destination_db jest ustawiona na nazwę baza danych publikacja. Dla wydawców bazy danych Oracle destination_db musi być określona. Dla innych niż-programu SQL Server subskrybent, podać wartość przeznaczenia (domyślny) destination_db.

  • [@ sync_type =] ' sync_type"
    Is the subscription synchronization type.sync_type is nvarchar(255), and can be one of the following values:

    Wartość

    Description

    Brak

    Subskrybent już schematu i początkowych danych opublikowanych tabel.

    NoteNote:
    Opcja ta została zaniechana.Tylko zamiast korzystać z obsługi replikacja.

    Automatyczna (domyślne)

    Schemat i początkowych danych opublikowanych tabel są przenoszone do subskrybent najpierw.

    tylko obsługi replikacja

    Zapewnia automatyczne generowanie przez subskrybent artykuł niestandardowych procedur przechowywanych i wyzwalaczy, które obsługują subskrypcji aktualizacji, w razie potrzeby.Zakłada się, że subskrybent ma już schematu i początkowych danych opublikowanych tabel.Podczas konfigurowania elementu równorzędnego do równorzędnego transakcyjnych topologia replikacja, upewnij się, że dane na wszystkich węzłach w topologii jest identyczne.Aby uzyskać więcej informacji zobacz Jak Konfigurowanie typu peer-to-peer transakcyjne replikacja (replikacja programowania języka Transact-SQL).

    Nie jest obsługiwana dla subskrypcji do publikacji serwera SQL.

    Inicjowanie z kopia zapasowa

    Schemat i początkowych danych opublikowanych tabel są uzyskiwane z kopia zapasowa baza danych publikacja.Zakłada się, że subskrybent ma dostęp do kopia zapasowa bazy danych publikacja.Lokalizacji typu kopia zapasowa i nośnik kopia zapasowa są określane przez backupdevicename i backupdevicetype. Podczas korzystania z tej opcji, elementu równorzędnego do równorzędnego transakcyjnych topologia replikacja nie muszą być quiesced podczas konfiguracja.

    Nie jest obsługiwana dla subskrypcji do publikacji serwera SQL.

    Inicjowanie z lsn

    Używane podczas dodawania węzła do elementu równorzędnego do równorzędnego transakcyjnych topologia replikacja.Używane z @ subscriptionlsn, aby upewnić się, że wszystkie odpowiednie transakcje są replikowane do nowego węzła.Zakłada się, że subskrybent ma już schematu i początkowych danych opublikowanych tabel.Aby uzyskać więcej informacji zobacz Jak Konfigurowanie typu peer-to-peer transakcyjne replikacja (replikacja programowania języka Transact-SQL).

    Uwaga

    Tabele systemowe i danych zawsze są przenoszone.

  • [@ stan =] ' status"
    Is the subscription status.status is sysname, with a default value of NULL.Jeżeli ten parametr nie jest jawnie zestaw, replikacja automatycznie s zestaw go do jednego z tych wartości.

    Wartość

    Description

    aktywne

    Subskrypcja jest zainicjowana i gotowa do akceptowania zmian.Ta opcja jest zestaw po wartości sync_type jest Brak inicjacji z kopia zapasowa lub tylko obsługi replikacja.

    subskrybowane

    Subskrypcja musi zostać zainicjowany.Ta opcja jest zestaw po wartości sync_type odbywa się automatycznie.

  • [@ subscription_type =] ' subscription_type"
    Is the type of subscription.subscription_type is nvarchar(4), with a default of push.Może być wypychania lub ściągać.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.Aby uzyskać więcej informacji zobacz Subskrybowanie publikacji.

    Uwaga

    Subskrypcje anonimowy nie ma potrzeby za pomocą tej procedura przechowywana.

  • [@ update_mode =] ' update_mode"
    Is the type of update.update_mode is nvarchar(30), and can be one of these values.

    Wartość

    Description

    czytać tylko (domyślnie)

    Subskrypcja jest tylko do odczytu.Zmiany subskrybent nie są wysyłane do Wydawca.

    tran synchronizacji

    Włącza obsługę natychmiastowej aktualizacji subskrypcji.Nie jest obsługiwana dla Oracle wydawcy.

    tran kolejce

    Umożliwia subskrypcja dla aktualizacji w kolejce.Zmiany danych można dokonane przez subskrybent, przechowywane w kolejce i następnie propagowane do Wydawca.Nie jest obsługiwana dla Oracle wydawcy.

    Praca awaryjna

    Umożliwia subskrypcję do natychmiastowej aktualizacji kolejce aktualizacji w trybie awaryjnym.Zmiany danych mogą być wykonane przez subskrybent i natychmiast przekazywana do Wydawca.Jeśli Wydawca i subskrybent nie jest połączony, tryb aktualizacji mogą być zmienione tak, aby zmiany danych dokonane przez subskrybent są przechowywane w kolejce, dopóki subskrybent i Wydawca są ponownie podłączane.Nie jest obsługiwana dla Oracle wydawcy.

    kolejki pracy awaryjnej

    Umożliwia subskrypcja w kolejce subskrypcja aktualizacji z możliwością zmiany na bezpośrednim tryb aktualizacji.Może być wykonane przez subskrybent i przechowywane w kolejce, dopóki połączenie jest ustanowione między subskrybent i Wydawca modyfikacji danych.Po ustanowieniu połączenia stałe tryb aktualizacji może zostać zmieniony na natychmiastowe aktualizowanie.Nie jest obsługiwana dla Oracle wydawcy.

    Należy zauważyć, że wartości synchronizacji tran i tran kolejce nie są dozwolone, jeśli publikacja jest subskrybentem umożliwia 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.

    Wartość

    Description

    wartość true

    Agent dystrybucji nie wysyła transakcji pochodzi subskrybent do subskrybenta.Używane z replikacja transakcyjnej dwukierunkowego.Aby uzyskać więcej informacji zobacz Dwukierunkowa transakcyjne replikacja.

    FAŁSZ

    Rozkład Agent wysyła transakcji utworzonych przez subskrybent do subskrybent.

    NULL(default)

    Automatycznie zestaw na wartość true dla SQL Server Subskrybent i false dla różna-SQL Server Subskrybent.

  • [@ 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.

    Wartość

    Description

    1

    Jeden raz

    2

    Na żądanie

    4

    Dzienne

    8

    Co tydzień

    16

    Miesięczne

    32

    Względna miesięczne

    64 (domyślny)

    Autostart

    128

    Cykliczne

  • [@ 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
    Jest to data Agent dystrybucji.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.

    Wartość

    Description

    1

    First

    2

    Sekundy

    4

    Trzecia

    8

    Czwarty

    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.

    Wartość

    Description

    1

    Tylko raz

    2

    Sekundy

    4

    Minuta

    8

    Godziny

    WARTOŚCI 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.

  • [@ zarezerwowane =] ' reserved"
    Identified for informational purposes only. Not supported. Future compatibility is not guaranteed.

  • [@ enabled_for_syncmgr =] ' enabled_for_syncmgr"
    Is whether the subscription can be synchronized through Microsoft Windows Synchronization Manager.enabled_for_syncmgr is nvarchar(5), with a default of FALSE.W przypadku wartości FAŁSZ subskrypcja nie został zarejestrowany z menedżer synchronizacji systemu Windows.Jeśli ma wartość true, subskrypcja jest zarejestrowany z menedżer synchronizacji systemu Windows i mogą być synchronizowane bez konieczności uruchamiania SQL Server Management Studio. Nie jest obsługiwana dla Oracle wydawcy.

  • [@ offloadagent =] ' remote_agent_activation"
    Specifies that the agent can be activated remotely.remote_agent_activation is bit with a default of 0.

    Uwaga

    Tego parametru została zastąpiona i jest obsługiwana tylko w celu zapewnienia zgodności z poprzednimi wersjami skryptów.

  • [@ 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.Na przykład aby określić pakiet DTSPub_Package, parametr może być @dts\_package\_name = N'DTSPub_Package'. Ten parametr jest dostępny dla subskrypcji wypychanych.Aby dodać DTS pakiet informacji z subskrypcja ściąganej sp_addpullsubscription_agent użycia.

  • [@ 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.

    Uwaga

    Jeśli musisz określić hasło dts_package_name jest określony.

  • [@ dts_package_location =] ' dts_package_location"
    Specifies the package location.dts_package_location is a nvarchar(12), with a default of DISTRIBUTOR.Lokalizacja pakiet może być dystrybutor lub abonenta.

  • [@ distribution_job_name =] ' distribution_job_name"
    Identified for informational purposes only. Not supported. Future compatibility is not guaranteed.

  • [@ Wydawca =] ' publisher"
    Specifies a non-Microsoft SQL Server Publisher.publisher is sysname, with a default of NULL.

    Uwaga

    publisher nie powinny być określone dla SQL Server Wydawca.

  • [@ 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:

    Wartość

    Description

    logiczne (domyślnie)

    urządzenie kopia zapasowa jest urządzeniem logicznym.

    dysk

    Urządzenie kopia zapasowa jest dysk.

    taśmy

    urządzenie kopia zapasowa jest stacją taśm

    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.

    Uwaga

    This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

  • [@ hasła =] ' 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.

  • [@ zwolnienia =] 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
    Określa numer sekwencyjny dziennika (LSN) jaką subskrypcja powinno rozpocząć się dostarczanie zmian do węzła w elementu równorzędnego do równorzędnego transakcyjnych topologia replikacja.Używane z wartością @ sync_type inicjowania z lsn, aby upewnić się, że wszystkie odpowiednie transakcje są replikowane do nowego węzła.Aby uzyskać więcej informacji zobacz Jak Konfigurowanie typu peer-to-peer transakcyjne replikacja (replikacja programowania języka Transact-SQL).

  • [@ 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.Obsługiwany jest zakres wartości od 1 do 64.Ten parametr nie jest obsługiwana dla nie-SQL Server Subskrybenci wydawcy bazy danych Oracle lub subskrypcje typu peer-to-peer.

  • [@ subscriber_type =] subscriber_type
    Is the type of Subscriber.subscriber_type is tinyint, and can be one of these values.

    Wartość

    Description

    0 (domyślny)

    SQL Server Subskrybent

    1

    Serwer urządzenie źródłowe danych ODBC

    2

    Microsoft Bazy danych Jet

    3

    Dostawca OLE DB

Wartości kodów powrotnych

0 (sukces) lub 1 (brak)

Remarks

sp_addsubscription jest używana w przypadku replikacja migawka i replikacji transakcyjnej.

Kiedy sp_addsubscription jest wykonywany przez element członkowski członkowski sysadmin stała rola serwera do utworzenia subskrypcja wypychana, tworzona jest niejawnie zadanie agenta dystrybucji i jest uruchamiana na koncie usługa SQL Server Agent.Zaleca się, że wykonać sp_addpushsubscription_agent i określ poświadczenia konta systemu Windows inny, specyficzny dla agenta @ job_login i @ job_password.Aby uzyskać więcej informacji zobacz Replication Agent Security Model.

sp_addsubscription uniemożliwia ODBC i OLE DB subskrybentów uzyskać dostęp do publikacji, które:

  • Zostały utworzone za pomocą macierzystego sync_method w wywołaniu sp_addpublication.

  • Zawiera artykuły, które zostały dodane do publikacja z sp_addarticle procedura przechowywana that had a pre_creation_cmd wartość parametru 3 (obcięciu).

  • Próba zestaw update_mode Aby zsynchronizować tran.

  • Być skonfigurowany do korzystania z instrukcji sparametryzowana artykuł.

Ponadto, jeśli publikacja ma allow_queued_tran Opcja ustawioną na wartość true (która włącza Kolejkowanie zmian przez subskrybent, dopóki nie mogą one być stosowane w Wydawca), inicjowanych przez kolumna sygnatury czasowej w artykuł jest skrypty się jako timestamp, a zmiany w tej kolumnie są wysyłane do subskrybent. Subskrybent generuje i aktualizuje wartość kolumna sygnatury czasowej.ODBC lub OLE DB subskrybent sp_addsubscription kończy się niepowodzeniem w przypadku próby subskrybować publikacja, która ma allow_queued_tran zestaw true i artykuły z kolumny sygnatury czasowej w nim.

Jeśli subskrypcja nie jest używany w pakiecie DTS, nie można subskrybować do publikacja, w której jest ustawiony na allow_transformable_subscriptions. Jeśli w tabela z publikacja muszą być replikowane do subskrypcja DTS i DTS bez subskrypcja, dwa oddzielne publikacja są ma zostać utworzony: jeden dla każdego typu subskrypcja.

Uprawnienia

Tylko członkowie roli sysadmin stałych serwera lub db_owner stała rola bazy danych sp_addsubscription mogą być wykonać.Subskrypcji ściąganej użytkownicy z logowania do listy dostępu publikacja może być wykonywany sp_addsubscription.