sys.sp_changemergepublication (Transact-SQL)

Dotyczy:SQL Server

Zmienia właściwości publikacji scalającej. Ta procedura składowana jest wykonywana w programie Publisher w bazie danych publikacji.

Transact-SQL konwencje składni

Składnia

sys.sp_changemergepublication
    [ @publication = ] N'publication'
    [ , [ @property = ] N'property' ]
    [ , [ @value = ] N'value' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ ; ]

Arguments

[ @publication = ] N'publikacja'

Nazwa publikacji. @publication to sysname, bez domyślnego zapisu.

[ @property = ] N'property'

Właściwość do zmiany dla danej publikacji. @property to sysname i może być jedną z wartości wymienionych w poniższej tabeli.

[ @value = ] N'value'

Nowa wartość dla określonej nieruchomości. @value to nvarchar(255), z wartością domyślną NULL.

, i może być jedną z wartości wymienionych w poniższej tabeli.

Ta tabela opisuje właściwości publikacji, które można zmienić, oraz ograniczenia dotyczące wartości tych właściwości.

Property Value Opis
allow_anonymous true Anonimowe subskrypcje są dozwolone.
false Anonimowe subskrypcje nie są dozwolone.
allow_partition_realignment true Usuwania są wysyłane do abonenta, aby odzwierciedlić wyniki zmiany partycji poprzez usunięcie danych, które nie są już częścią partycji abonenta. Jest to zachowanie domyślne.
false Dane ze starej partycji pozostają na Subskrybentze, podczas gdy zmiany dokonane w tych danych na Publisher nie replikują się do tego Abonenta. Zamiast tego zmiany wprowadzone na Subskrybentze replikują się do Publisher. Jest to używane do przechowywania danych w subskrypcji ze starej partycji, gdy dane muszą być dostępne do celów historycznych.
allow_pull true Dla danego wydawnictwa dozwolone są subskrypcje pull.
false Subskrypcje pull nie są dozwolone dla danego wydawnictwa.
allow_push true Subskrypcje push są dozwolone dla danego wydawnictwa.
false Subskrypcje push nie są dozwolone dla danego wydawnictwa.
allow_subscriber_initiated_snapshot true Subskrybent może rozpocząć proces snapshot.
false Subskrybent nie może zainicjować procesu snapshot.
allow_subscription_copy true Możesz skopiować bazy subskrypcji subskrybujące tę publikację.
false Nie możesz kopiować baz danych subskrypcji, które subskrybują tę publikację.
allow_synctoalternate true Pozwala alternatywnemu partnerowi synchronizacyjnemu synchronizować się z tym Publisher.
false Nie pozwala alternatywnemu partnerowi synchronizacji z tym Publisher.
allow_web_synchronization true Subskrypcje mogą być synchronizowane przez HTTPS.
false Subskrypcji nie da się zsynchronizować przez HTTPS.
alt_snapshot_folder Określa lokalizację alternatywnego folderu dla migawki.
automatic_reinitialization_policy 1 Zmiany są przesyłane przez Subskrybenta przed ponownym uruchomieniem subskrypcji.
0 Subskrypcja jest ponownie inicjalizowana bez wcześniejszego przesyłania zmian.
centralized_conflicts true Wszystkie zapisy konfliktów są przechowywane w Publisher. Jeśli zmienisz tę właściwość, istniejący subskrybenci muszą zostać ponownie zainicjalizowani.
false Rekordy konfliktów są przechowywane na serwerze, który przegrał w rozwiązywaniu konfliktów. Jeśli zmienisz tę właściwość, istniejący subskrybenci muszą zostać ponownie zainicjalizowani.
compress_snapshot true Migawka w alternatywnym folderze snapshotów jest kompresowana do formatu CAB. Migawka w domyślnym folderze snapshotów nie może być skompresowana. Zmiana tej właściwości wymaga nowego snapshota.
false Domyślnie migawka nie jest kompresowana. Zmiana tej właściwości wymaga nowego snapshota.
conflict_logging publisher Akta konfliktów są przechowywane w Publisher.
subscriber Zapisy konfliktów są przechowywane u abonenta, który spowodował konflikt. Nie jest obsługiwane dla subskrybentów SQL Server Compact.
both Zapisy konfliktów są przechowywane zarówno u Publisher, jak i Subscriber.
conflict_retention Int określający okres retencji w dniach, na który konflikty są zatrzymywane w czasie. Ustawienie conflict_retention oznacza 0 , że nie jest potrzebne sprzątanie konfliktów.
description Opis publikacji.
dynamic_filters true Publikacja jest filtrowana na podstawie klauzuli dynamicznej.
false Publikacja nie jest filtrowana dynamicznie.
enabled_for_internet true Publikacja jest dostępna w Internecie. Protokół transferu plików (FTP) może być używany do przesyłania plików migawek do abonenta. Pliki synchronizacyjne publikacji są umieszczane w katalogu C:\Program Files\Microsoft SQL Server\MSSQL\Repldata\ftp .
false Publikacja nie jest dostępna w Internecie.
ftp_address Adres sieciowy usługi FTP dla dystrybutora. Określa, gdzie przechowywane są pliki snapshotów publikacji.
ftp_login Nazwa użytkownika używana do połączenia z usługą FTP.
ftp_password Hasło użytkownika używane do połączenia z usługą FTP.
ftp_port Numer portu usługi FTP dla dystrybutora. Określa numer portu TCP dla strony FTP, w której przechowywane są pliki snapshotów publikacji.
ftp_subdirectory Określa, gdzie tworzone są pliki snapshotów, jeśli publikacja obsługuje propagację snapshotów za pomocą FTP.
generation_leveling_threshold int Określa liczbę zmian zawartych w pokoleniu. Pokolenie to zbiór zmian, które są przekazywane Publisher lub Subskrybentowi.
keep_partition_changes true Synchronizacja jest zoptymalizowana i dotknięci są tylko subskrybenci, którzy mają wiersze w zmienionych partycjach. Zmiana tej właściwości wymaga nowego snapshota.
false Synchronizacja nie jest zoptymalizowana, a partycje wysyłane do subskrybentów są weryfikowane, gdy dane zmieniają się w partycji. Zmiana tej właściwości wymaga nowego snapshota.
max_concurrent_merge Int reprezentujący maksymalną liczbę współbieżnych procesów scalania, które można uruchomić na publikacji. Jeśli 0, nie ma limitu. Jeśli więcej niż ta liczba procesów scalania jest zaplanowanych do jednoczesnego uruchomienia, nadmiar zadań trafia do kolejki do czasu zakończenia procesu currentlmerge.
max_concurrent_dynamic_snapshots Int reprezentujący maksymalną liczbę sesji snapshotów do wygenerowania filtrowanego snapshota, który może jednocześnie działać na publikacji merge wykorzystującej parametryzowane filtry wierszowe. Jeśli 0, nie ma limitu. Jeśli więcej niż ta liczba procesów snapshotów jest zaplanowanych do jednoczesnego uruchomienia, nadmiar zadań trafia do kolejki do czasu zakończenia bieżącego procesu scalania.
post_snapshot_script Określa wskaźnik do .sql lokalizacji pliku. Distribution Agent lub Merge Agent uruchamia skrypt post-snapshot po zastosowaniu wszystkich pozostałych replikowanych skryptów obiektów i danych podczas początkowej synchronizacji. Zmiana tej właściwości wymaga nowego snapshota.
pre_snapshot_script Określa wskaźnik do .sql lokalizacji pliku. Merge Agent uruchamia skrypt pre-snapshot przed dowolnym skryptem replikowanych obiektów podczas stosowania snapshotu do subskrybenta. Zmiana tej właściwości wymaga nowego snapshota.
publication_compatibility_level 100RTM SQL Server 2008 (10.0.x)
90RTM SQL Server 2005 (9.x)
publish_to_activedirectory true Ten parametr jest wycofany i zachowany ze względu na kompatybilność wsteczną skryptów. Nie można już dodawać informacji o publikacji do Active Directory.
false Usuwa informacje o publikacji z Active Directory.
replicate_ddl 1 Instrukcje Data Definition Language (DDL) wykonywane w Publisher są replikowane.
0 Instrukcje DDL nie są replikowane.
retention Int reprezentujący liczbę jednostek, dla których retention_period_unit należy zapisywać zmiany dla danej publikacji. Jeśli subskrypcja nie jest zsynchronizowana w okresie retencyjnym, a oczekujące zmiany zostały usunięte przez operację sprzątania u dystrybutora, subskrypcja wygasa i musi zostać ponownie zainicjalizowana. Maksymalny dopuszczalny okres przechowywania to liczba dni między 31 grudnia 9999 a aktualną datą.

Uwaga: Okres przechowywania publikacji połączonych z połączeniem obejmuje 24-godzinny okres karencji, aby dostosować się do subskrybentów w różnych strefach czasowych.
retention_period_unit day Okres retencji określany jest w dniach.
week Okres retencji określany jest w tygodniach.
month Okres retencji określany jest w miesiącach.
year Okres retencji określany jest w latach.
snapshot_in_defaultfolder true Pliki snapshotów są przechowywane w domyślnym folderze snapshotów.
false Pliki migawkowe są przechowywane w alternatywnym miejscu określonym przez alt_snapshot_folder. To połączenie określa, że pliki migawki są przechowywane zarówno w domyślnej, jak i alternatywnej lokalizacji.
snapshot_ready true Dostępne są zdjęcia z publikacji.
false Migawka do publikacji nie jest dostępna.
status active Publikacja jest w stanie aktywnym.
inactive Publikacja jest w stanie nieaktywnym.
sync_mode native lub

bcp native
Do początkowego snapshotu używa się natywnego trybu kopiowania wszystkich tabel w trybie natywnym.
character

lub bcp character
Dla początkowego snapshotu używa się kopiowania wszystkich tabel w trybie znakowym typu bulk-kopia, co jest wymagane dla wszystkich subskrybentów spoza SQL Server.
use_partition_groups

Uwaga: Po użyciu grup partycji, jeśli wrócisz do używania setupbelongs, i ustawisz use_partition_groups=false w changemergearticle, może to nie być poprawnie odzwierciedlone po wykonaniu snapshota. Wyzwalacze generowane przez snapshot są zgodne z grupami partycji.

Obejściem tego scenariusza jest ustawienie statusu na Nieaktywny, modyfikacja , use_partition_groupsa następnie ustawienie statusu na Aktywny.
true Publikacja wykorzystuje precompultowane partycje.
false Publikacja nie korzysta z precompulowanych partycji.
validate_subscriber_info Lista funkcji używanych do pobierania informacji o subskrybentach. Następnie weryfikuje kryteria filtrowania dynamicznego użyte przez abonenta, aby zweryfikować, czy informacje są podzielone na części spójnie.
web_synchronization_url Domyślna wartość adresu URL Internetu używanego do synchronizacji sieci.
NULL (ustawienie domyślne) Zwraca listę wspieranych wartości dla @property.

[ @force_invalidate_snapshot = ] force_invalidate_snapshot

Uznaje, że działanie podjęte przez tę procedurę przechowywaną może unieważnić istniejący migawkę. @force_invalidate_snapshot jest bitowa z wartością domyślną 0.

  • 0 Określa, że zmiana publikacji nie unieważnia snapshota. Jeśli procedura przechowywana wykryje, że zmiana wymaga nowego snapshota, wystąpi błąd i nie zostaną wprowadzone żadne zmiany.

  • 1 Określa, że zmiana publikacji może unieważnić migawkę. Jeśli istnieją subskrypcje wymagające nowego snapshota, daje się zgodę na oznaczenie istniejącego snapshota jako przestarzałego i wygenerowanie nowego snapshota.

Zobacz sekcję Uwagi dotyczące właściwości, które po zmianie wymagają wygenerowania nowego snapshota.

[ @force_reinit_subscription = ] force_reinit_subscription

Potwierdza, że działanie podjęte przez tę procedurę przechowywaną może wymagać ponownej inicjalizacji istniejących subskrypcji. @force_reinit_subscription jest bitowa z wartością domyślną 0.

  • 0 Określa, że zmiana publikacji nie wymaga ponownej inicjalizacji subskrypcji. Jeśli procedura przechowywana wykryje, że zmiana wymaga ponownej inicjalizacji istniejących subskrypcji, pojawia się błąd i nie wprowadza się żadnych zmian.

  • 1 Oznacza to, że zmiany w publikacji ponownie inicjalizują istniejące subskrypcje i dają zgodę na ponowną inicjałację subskrypcji.

Zobacz sekcję Uwagi dotyczące właściwości, które po zmianie wymagają ponownej inicjalizacji wszystkich istniejących subskrypcji.

Zwracanie wartości kodu

0 (powodzenie) lub 1 (niepowodzenie).

Remarks

sp_changemergepublication jest stosowany w replikacji scalania.

Zmiana następujących właściwości wymaga wygenerowania nowego migawki. Musisz określić wartość parametru 1@force_invalidate_snapshot .

  • alt_snapshot_folder
  • compress_snapshot
  • dynamic_filters
  • ftp_address
  • ftp_login
  • ftp_password
  • ftp_port
  • ftp_subdirectory
  • post_snapshot_script
  • publication_compatibility_level (tylko dla osoby 80SP3 )
  • pre_snapshot_script
  • snapshot_in_defaultfolder
  • sync_mode
  • use_partition_groups

Zmiana następujących właściwości wymaga ponownej inicjalizacji istniejących subskrypcji. Musisz określić wartość parametru 1@force_reinit_subscription .

  • dynamic_filters
  • validate_subscriber_info

Aby wypisać obiekty publikacji w Active Directory za pomocą publish_to_active_directory, obiekt SQL Server musi być już utworzony w Active Directory.

Examples

DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge'; 

-- Disable DDL replication for the publication.
USE [AdventureWorks2022]
EXEC sp_changemergepublication 
  @publication = @publication, 
  @property = N'replicate_ddl', 
  @value = 0,
  @force_invalidate_snapshot = 0, 
  @force_reinit_subscription = 0;
GO

Permissions

Tylko członkowie roli stałego serwera systemowego lub stałej db_owner stałej bazy danych mogą wykonywać sp_changemergepublication.