Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: SQL Server
Markiert die aktuelle geöffnete Transaktion als Überprüfungstransaktion auf Abonnementebene für den angegebenen Abonnenten. Diese gespeicherte Prozedur wird im Publisher in der Publikationsdatenbank ausgeführt.
Transact-SQL-Syntaxkonventionen
Syntax
sp_marksubscriptionvalidation
[ @publication = ] N'publication'
, [ @subscriber = ] N'subscriber'
, [ @destination_db = ] N'destination_db'
[ , [ @publisher = ] N'publisher' ]
[ ; ]
Argumente
[ @publication = ] N'Publikation'
Der Name der Veröffentlichung. @publication ist "sysname" ohne Standard.
[ @subscriber = ] N'subscriber'
Den Namen des Abonnenten. @subscriber ist "sysname" ohne Standard.
[ @destination_db = ] N'destination_db'
Der Name der Zieldatenbank. @destination_db ist "sysname" ohne Standard.
[ @publisher = ] N'publisher'
Gibt einen Nicht-SQL Server-Herausgeber an. @publisher ist "sysname" mit der Standardeinstellung "NULL
.
@publisher sollte nicht für eine Publikation verwendet werden, die zu einem SQL Server-Herausgeber gehört.
Rückgabecodewerte
0
(erfolgreich) oder 1
Fehler.
Hinweise
sp_marksubscriptionvalidation
wird in der Transaktionsreplikation verwendet.
sp_marksubscriptionvalidation
unterstützt nicht SQL Server-Abonnenten.
Bei Nicht-SQL Server-Herausgebern können Sie nicht innerhalb einer expliziten Transaktion ausgeführt werden sp_marksubscriptionvalidation
. Dies liegt daran, dass explizite Transaktionen nicht über die verknüpfte Serververbindung unterstützt werden, die für den Zugriff auf publisher verwendet wird.
sp_marksubscriptionvalidation
muss zusammen mit sp_article_validation verwendet werden, wobei ein Wert 1
für @subscription_level angegeben wird und mit anderen Aufrufen verwendet werden kann, um sp_marksubscriptionvalidation
die aktuelle offene Transaktion für andere Abonnenten zu kennzeichnen.
Berechtigungen
Nur Mitglieder der festen Serverrolle sysadmin oder db_owner feste Datenbankrolle können ausgeführt werden sp_marksubscriptionvalidation
.
Beispiele
Die folgende Abfrage kann auf die Verlegerdatenbank angewendet werden, um Befehle mit Überprüfung auf Abonnementebene bereitzustellen. Diese Befehle werden von den Verteilungs-Agents der angegebenen Abonnenten erfasst. Die erste Transaktion überprüft artikel art1
, während die zweite Transaktion überprüft art2
wird. Die Aufrufe und sp_marksubscriptionvalidation
sp_article_validation werden in einer Transaktion gekapselt. Es wird nur ein Aufruf von sp_article_validation pro Transaktion empfohlen. Dies liegt daran, dass sp_article_validation eine freigegebene Tabellensperre für die Quelltabelle während der Transaktion enthält. Die Transaktion muss so kurz wie möglich sein, um die Parallelität zu maximieren.
BEGIN TRANSACTION;
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 TRANSACTION;
BEGIN TRANSACTION;
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 TRANSACTION;