sp_marksubscriptionvalidation (języka Transact-SQL)
Oznacza bieżącą otwartych transakcji do subskrypcja-poziom sprawdzania poprawności transakcji dla określonego subskrybent.Ta procedura składowana jest wykonywany Wydawca publikacja bazy danych.
Składnia
sp_marksubscriptionvalidation [ @publication = ] 'publication'
, [ @subscriber = ] 'subscriber'
, [ @destination_db = ] 'destination_db'
[ , [ @publisher = ] 'publisher' ]
Argumenty
[ @publikacja= ] 'publication'
Jest to nazwa publikacja.publicationjest Sysname, z Brak domyślnej.[ @subskrybent= ] 'subscriber'
Jest to nazwa subskrybenta.subscriberjest sysname z Brak domyślnej.[ @ destination_db =] 'destination_db'
Jest to nazwa obiekt docelowy bazy danych.destination_dbjest Sysname, z Brak domyślnej.[ program publisher @= ] 'publisher'
Określa różna-Microsoft SQL Server Wydawca.publisherjest Sysname, domyślna wartość NULL.Ostrzeżenie
publishernie może być używane do publikacja , która należy do SQL Server Wydawca.
Wartości kodów powrotnych
0 (sukces) lub 1 (błąd)
Uwagi
sp_marksubscriptionvalidation jest używany w replikacjatransakcyjnej.
sp_marksubscriptionvalidation nie obsługuje nie-SQL Server abonentów.
Dla nie-SQL Server wydawcy, nie możesz wykonać sp_marksubscriptionvalidation z transakcja jawna.Wynika to z transakcji jawnej nie są obsługiwane za pośrednictwem połączenia z serwer połączony umożliwiające dostęp do Wydawca.
sp_marksubscriptionvalidation musi być użyty wraz z sp_article_validation (języka Transact-SQL), określając wartość 1 dla subscription_leveli może być używany z innymi wywołań sp_marksubscriptionvalidation Aby oznaczyć bieżącej transakcji otwartych dla innych subskrybentów.
Uprawnienia
Tylko członkowie sysadmin stała rola serwera lub db_owner Stała rola bazy danych można wykonać sp_marksubscriptionvalidation.
Przykład
Następujące kwerendy mogą być stosowane do publikowania bazy danych księgowania subskrypcja-poziom sprawdzania poprawności polecenia.Te polecenia są zabierani przez agentów rozkładu określoną abonentów.Uwaga pierwszej transakcji sprawdzania artykuł "art1", a druga sprawdza poprawność transakcji"art2'.Ponadto należy zauważyć, że wywołań sp_marksubscriptionvalidation i sp_article_validation (języka Transact-SQL) zostały hermetyzowane w transakcji.Zaleca się tylko jedno wywołanie sp_article_validation (języka Transact-SQL) dla transakcji.Wynika to z sp_article_validation (języka Transact-SQL) przechowuje udostępnione tabela blokada w źródło tabela na czas trwania transakcji.Należy zachować krótki, aby zmaksymalizować współbieżnośćtransakcji.
begin tran
exec sp_marksubscriptionvalidation @publication = 'pub1',
@subscriber = 'Sub', @destination_db = 'SubDB'
exec sp_marksubscriptionvalidation @publication = 'pub1',
@subscriber = 'Sub2', @destination_db = 'SubDB'
exec sp_article_validation @publication = 'pub1', @article = 'art1',
@rowcount_only = 0, @full_or_fast = 0, @shutdown_agent = 0,
@subscription_level = 1
commit tran
begin tran
exec sp_marksubscriptionvalidation @publication = 'pub1',
@subscriber = 'Sub', @destination_db = 'SubDB'
exec sp_marksubscriptionvalidation @publication = 'pub1',
@subscriber = 'Sub2', @destination_db = 'SubDB'
exec sp_article_validation @publication = 'pub1', @article = 'art2',
@rowcount_only = 0, @full_or_fast = 0, @shutdown_agent = 0,
@subscription_level = 1
commit tran
Zobacz także