Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Managed Instance
Tworzy subskrypcję push lub pull merge. Ta procedura składowana jest wykonywana w programie Publisher w bazie danych publikacji.
Transact-SQL konwencje składni
Składnia
sys.sp_addmergesubscription
[ @publication = ] N'publication'
[ , [ @subscriber = ] N'subscriber' ]
[ , [ @subscriber_db = ] N'subscriber_db' ]
[ , [ @subscription_type = ] N'subscription_type' ]
[ , [ @subscriber_type = ] N'subscriber_type' ]
[ , [ @subscription_priority = ] subscription_priority ]
[ , [ @sync_type = ] N'sync_type' ]
[ , [ @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 = ] N'optional_command_line' ]
[ , [ @description = ] N'description' ]
[ , [ @enabled_for_syncmgr = ] N'enabled_for_syncmgr' ]
[ , [ @offloadagent = ] offloadagent ]
[ , [ @offloadserver = ] N'offloadserver' ]
[ , [ @use_interactive_resolver = ] N'use_interactive_resolver' ]
[ , [ @merge_job_name = ] N'merge_job_name' ]
[ , [ @hostname = ] N'hostname' ]
[ ; ]
Arguments
[ @publication = ] N'publication'
Nazwa publikacji. @publication to sysname, bez domyślnego zapisu. Publikacja musi już istnieć.
[ @subscriber = ] N'subskrybent'
Nazwa subskrybenta.
@subscriber to nazwa systemu z domyślnym .NULL
[ @subscriber_db = ] N'subscriber_db'
Nazwa bazy danych subskrypcji.
@subscriber_db to nazwa systemu, z domyślnym .NULL
[ @subscription_type = ] N'subscription_type'
Rodzaj subskrypcji.
@subscription_type to nvarchar(15), z domyślnym .push
- Jeśli
push, dodana jest subskrypcja push i Merge Agent jest dodawany u dystrybutora. - Jeśli ,
pullsubskrypcja pull jest dodawana bez dodawania Merge Agent u dystrybutora.
Note
Anonimowe subskrypcje nie muszą korzystać z tej procedury przechowywanej.
[ @subscriber_type = ] N'subscriber_type'
Typ Subskrybenta. @subscriber_type to nvarchar(15) i może być jedną z następujących wartości.
| Value | Description |
|---|---|
local (ustawienie domyślne) |
Subskrybent znany tylko Publisher. |
global |
Subskrybent znany wszystkim serwerom. |
W wersjach SQL Server 2005 (9.x) i nowszych, subskrypcje lokalne nazywane są subskrypcjami klientowymi, a subskrypcje globalne subskrypcjami serwerowymi.
[ @subscription_priority = ] subscription_priority
Numer wskazujący priorytet subskrypcji.
@subscription_priority jest rzeczywisty, z domyślnym .NULL Dla lokalnych i anonimowych subskrypcji priorytetem 0.0jest . Dla subskrypcji globalnych priorytet musi być mniejszy niż 100.0.
[ @sync_type = ] N'sync_type'
Typ synchronizacji subskrypcji.
@sync_type to nvarchar(15), z domyślnym obciążeniem automatic.
- Jeśli
automatic, schemat i dane początkowe dla opublikowanych tabel są najpierw przekazywane do Abonenta. - Jeśli ,
noneSubscriber zakłada się, że posiada już schemat i dane początkowe dla opublikowanych tabel. Tabele systemowe i dane są zawsze przesyłane.
Note
Zalecamy nie określać wartości .none
[ @frequency_type = ] frequency_type
Wartość wskazująca, kiedy uruchamia się Merge Agent. @frequency_type to int i może być jedną z następujących wartości.
| Value | Description |
|---|---|
1 |
Raz |
4 |
Codziennie |
8 |
Weekly |
16 |
Monthly |
32 |
Miesięcznie, w stosunku do przedziału częstotliwości |
64 |
Kiedy uruchamia się SQL Server Agent |
NULL (ustawienie domyślne) |
[ @frequency_interval = ] frequency_interval
Dzień lub dni, w których działa Merge Agent. @frequency_interval to int i może być jedną z następujących wartości.
| Value | Description |
|---|---|
1 |
Niedziela |
2 |
Poniedziałek |
3 |
Tuesday |
4 |
Środa |
5 |
Czwartek |
6 |
Piątek |
7 |
Sobota |
8 |
Dzień |
9 |
Dni powszednie |
10 |
Dni weekendowe |
NULL (ustawienie domyślne) |
[ @frequency_relative_interval = ] frequency_relative_interval
Zaplanowane wystąpienie przedziału częstotliwości w każdym miesiącu. @frequency_relative_interval jest int i może być jedną z tych wartości.
| Value | Description |
|---|---|
1 |
First |
2 |
sekunda |
4 |
Third |
8 |
Fourth |
16 |
Ostatni |
NULL (ustawienie domyślne) |
[ @frequency_recurrence_factor = ] frequency_recurrence_factor
Współczynnik powtarzalności używany przez @frequency_type.
@frequency_recurrence_factor jest int z wartością domyślną NULL.
[ @frequency_subday = ] frequency_subday
Jednostka do @frequency_subday_interval. @frequency_subday to int i może być jedną z następujących wartości.
| Value | Description |
|---|---|
1 |
Raz |
2 |
sekunda |
4 |
Minuta |
8 |
Godzina |
NULL (ustawienie domyślne) |
[ @frequency_subday_interval = ] frequency_subday_interval
Częstotliwość @frequency_subday występuje między każdym połączeniem.
@frequency_subday_interval jest int z wartością domyślną NULL.
[ @active_start_time_of_day = ] active_start_time_of_day
Pora dnia, w której Merge Agent jest po raz pierwszy zaplanowany, sformatowana jako HHmmss.
[ @active_end_time_of_day = ] active_end_time_of_day
Pora dnia, w której Merge Agent przestaje być planowany, sformatowana jako HHmmss.
@active_end_time_of_day jest int, z domyślnym obciążeniem NULL.
[ @active_start_date = ] active_start_date
Data, w której Merge Agent jest po raz pierwszy zaplanowany, jest sformatowana jako yyyyMMdd.
@active_start_date jest int, z domyślnym .NULL
[ @active_end_date = ] active_end_date
Data, kiedy Merge Agent przestaje być planowany, sformatowana jako yyyyMMdd.
@active_end_date jest int, z domyślnym .NULL
[ @optional_command_line = ] N'optional_command_line'
Opcjonalny wiersz poleceń do wykonania.
@optional_command_line to nvarchar(4000), z domyślnym obciążeniem NULL. Ten parametr służy do dodania polecenia, które przechwytuje wyjście i zapisuje je do pliku lub do określenia pliku konfiguracyjnego lub atrybutu.
[ @description = ] N'opis"
Krótki opis tej subskrypcji merge.
@description to nvarchar(255), z domyślnym obciążeniem NULL. Ta wartość jest wyświetlana przez Monitor Replikacji w kolumnie Friendly Name , który może być używany do sortowania subskrypcji dla monitorowanej publikacji.
[ @enabled_for_syncmgr = ] N'enabled_for_syncmgr'
Określa, czy subskrypcja może być zsynchronizowana przez Microsoft Windows Synchronization Manager.
@enabled_for_syncmgr to nvarchar(5), z domyślnym .false
- Jeśli
false, subskrypcja nie jest zarejestrowana w Synchronization Manager. - Jeśli
true, subskrypcja jest zarejestrowana w Synchronization Manager i może być synchronizowana bez uruchamiania SQL Server Management Studio.
[ @offloadagent = ] offloadagent
Określa, że agent może być aktywowany zdalnie.
@offloadagent jest bit, z domyślnym .0
Ten parametr jest przestarzały i jest utrzymywany w celu zapewnienia zgodności z poprzednimi wersjami skryptów.
[ @offloadserver = ] N'offloadserver'
Określa nazwę sieciową serwera, który ma być używany do zdalnej aktywacji agenta.
@offloadserver jest nazwą systemu z domyślnym .NULL
[ @use_interactive_resolver = ] N'use_interactive_resolver'
Pozwala na interaktywne rozwiązywanie konfliktów dla wszystkich artykułów umożliwiających interaktywne rozwiązywanie.
@use_interactive_resolver jest nvarchar(5), z domyślnym .false
[ @merge_job_name = ] N'merge_job_name'
Ten parametr jest przestarzały i nie da się go ustawić.
@merge_job_name to nazwa systemu, z domyślnym .NULL
[ @hostname = ] N'hostname'
Nadpisuje wartość zwracaną przez HOST_NAME , gdy funkcja ta jest używana w klauzuli WHERE filtra parametryzowanego.
@hostname to nazwa systemu, z domyślnym .NULL
Important
Ze względów wydajnościowych zalecamy, aby nie stosować funkcji do nazw kolumn w parametryzowanych klauzulach filtrów wierszowych, takich jak LEFT([MyColumn]) = SUSER_SNAME(). Jeśli użyjesz HOST_NAME w klauzuli filtracyjnej i nadpiszesz wartość HOST_NAME, może być konieczne przekonwertowanie typów danych za pomocą CONVERT. Więcej informacji o najlepszych praktykach w tym przypadku można znaleźć w sekcji "Nadpisywanie wartości HOST_NAME()" w temacie Filtry parametryzowane – Filtry wierszowe parametryzowane.
Zwracanie wartości kodu
0 (powodzenie) lub 1 (niepowodzenie).
Remarks
sp_addmergesubscription jest używany w replikacji scalania.
Gdy sp_addmergesubscription jest wykonywany przez członka stałej roli serwera administratora systemu, aby utworzyć subskrypcję push, zadanie Merge Agent jest niejawnie tworzone i uruchamiane na koncie usługi SQL Server Agent. Zalecamy wykonanie sp_addmergepushsubscription_agent i określenie danych uwierzytelniających innego, specyficznego dla agenta konta Windows dla @job_login i @job_password. Aby uzyskać więcej informacji, zobacz model zabezpieczeń agenta replikacji .
Examples
-- 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;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorksReplica';
SET @hostname = N'adventure-works\david8'
-- Add a push subscription to a merge publication.
USE [AdventureWorks2022];
EXEC sp_addmergesubscription
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@subscription_type = N'push',
@hostname = @hostname;
--Add an agent job to synchronize the push subscription.
EXEC sp_addmergepushsubscription_agent
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@job_login = $(Login),
@job_password = $(Password);
GO
Permissions
Tylko członkowie roli stałego serwera systemowego lub stałej db_owner stałej bazy danych mogą wykonywać sp_addmergesubscription.