Freigeben über


Artikeleigenschaften anzeigen und ändern

In diesem Thema wird beschrieben, wie Sie Artikeleigenschaften in SQL Server 2014 mithilfe von SQL Server Management Studio, Transact-SQL oder Replication Management Objects (RMO) anzeigen und ändern.

In diesem Themenbereich

Bevor Sie beginnen

Einschränkungen und Beschränkungen

  • Einige Eigenschaften können nicht geändert werden, nachdem eine Publikation erstellt wurde, und andere können nicht geändert werden, wenn abonnements für die Publikation vorhanden sind. Eigenschaften, die nicht geändert werden können, werden als 'nur lesbar' angezeigt.

Empfehlungen

Verwendung von SQL Server Management Studio

Anzeigen und Ändern von Artikeleigenschaften im Dialogfeld Publikationseigenschaften <– Publikation> , das in Microsoft SQL Server Management Studio und Replikationsmonitor verfügbar ist. Informationen zum Starten des Replikationsmonitors finden Sie unter Starten des Replikationsmonitors.

  • Die Seite "Allgemein " enthält den Namen und die Beschreibung der Publikation, den Datenbanknamen, den Publikationstyp und die Abonnementablaufeinstellungen.

  • Die Seite "Artikel" entspricht der Seite "Artikel" im Assistenten für Neue Publikation. Mithilfe dieser Seite können Sie Artikel hinzufügen und löschen sowie Eigenschaften und Spaltenfilterung für Artikel ändern.

  • Die Seite "Zeilen filtern" entspricht der Seite "Tabellenzeilen filtern" im neuen Publikationsassistenten. Verwenden Sie diese Seite, um statische Zeilenfilter für alle Arten von Publikationen sowie parametrisierte Zeilenfilter und Verknüpfungsfilter für Zusammenführungen hinzuzufügen, zu bearbeiten und zu löschen.

  • Auf der Momentaufnahmeseite können Sie das Format und die Position der Momentaufnahme angeben, ob die Momentaufnahme komprimiert werden soll, und Skripts, die vor und nach der Anwendung der Momentaufnahme ausgeführt werden sollen.

  • Auf der FTP-Momentaufnahmeseite (für Snapshot- und Transaktionspublikationen und zusammenführen von Publikationen für Herausgeber, die Versionen vor SQL Server 2005 ausführen) können Sie angeben, ob Abonnenten Snapshotdateien über das File Transfer Protocol (FTP) herunterladen können.

  • Die Seite für FTP-Snapshot und Internet (für die Zusammenführung von Publikationen von Herausgebern, die SQL Server 2005 oder spätere Versionen verwenden) ermöglicht es Ihnen, festzulegen, ob Abonnenten Snapshotdateien über FTP herunterladen und Abonnements über HTTPS synchronisieren können.

  • Auf der Seite " Abonnementoptionen " können Sie eine Reihe von Optionen festlegen, die für alle Abonnements gelten. Die Optionen unterscheiden sich je nach Art der Publikation.

  • Auf der Seite " Publikationszugriffsliste " können Sie angeben, welche Anmeldeinformationen und Gruppen auf eine Publikation zugreifen können.

  • Auf der Seite "Agent-Sicherheit" können Sie auf Einstellungen für die Konten zugreifen, unter denen die folgenden Agenten ausgeführt werden, und Verbindungen mit den Computern in einer Replikationstopologie herstellen: der Snapshot-Agent für alle Publikationen, der Log-Reader-Agent für alle Transaktionspublikationen und der Warteschlangenleser-Agent für Transaktionspublikationen, die das Aktualisieren von Abonnements in Warteschlangen erlauben.

  • Auf der Seite "Datenpartitionen " (für zusammenführen von Publikationen aus Herausgebern, die SQL Server 2005 oder höher ausführen) können Sie angeben, ob Abonnenten für Publikationen mit parametrisierten Filtern eine Momentaufnahme anfordern können, wenn eine nicht verfügbar ist. Außerdem können Sie Momentaufnahmen für eine oder mehrere Partitionen entweder einmal oder nach einem wiederkehrenden Zeitplan erstellen.

So zeigen Sie Artikeleigenschaften an und ändern sie

  1. Wählen Sie auf der Artikelseite des Dialogfelds Publikationseigenschaften - <Publikation> einen Artikel aus und klicken Sie dann auf Artikeleigenschaften.

  2. Wählen Sie aus, auf welche Artikel Eigenschaftsänderungen angewendet werden sollen:

    • Klicken Sie auf "Eigenschaften hervorgehobener <ObjectType-Artikel> festlegen ", um das Dialogfeld "Artikeleigenschaften - <Objektname> " zu starten. In diesem Dialogfeld vorgenommene Eigenschaftenänderungen werden nur auf das Objekt angewendet, das im Objektbereich auf der Seite "Artikel " hervorgehoben ist.

    • Klicken Sie auf "Eigenschaften aller <ObjectType-Artikel> festlegen", um das Dialogfeld "Eigenschaften für alle <ObjectType-Artikel>" zu starten. In diesem Dialogfeld vorgenommene Eigenschaftenänderungen werden auf alle Objekte dieses Typs im Objektbereich auf der Seite "Artikel" angewendet, einschließlich der Objekte, die noch nicht für die Veröffentlichung ausgewählt wurden.

      Hinweis

      Eigenschaftenänderungen, die im Dialogfeld Eigenschaften für alle <ObjectType-Artikel> vorgenommen wurden, setzen alle zuvor im Dialogfeld "Artikeleigenschaften - <Objektname>" vorgenommenen Änderungen außer Kraft. Wenn Sie beispielsweise eine Reihe von Standardwerten für alle Artikel eines Objekttyps festlegen möchten, aber auch einige Eigenschaften für einzelne Objekte festlegen möchten, legen Sie zuerst die Standardwerte für alle Artikel fest. Legen Sie dann die Eigenschaften für die einzelnen Objekte fest.

  3. Ändern Sie ggf. alle Eigenschaften, und klicken Sie dann auf "OK".

  4. Klicken Sie im Dialogfeld "Publikationseigenschaften - <Publikation>" auf "OK".

Verwenden von Transact-SQL

Artikel können geändert werden und ihre Eigenschaften programmgesteuert mithilfe gespeicherter Replikationsprozeduren zurückgegeben werden. Die gespeicherten Prozeduren, die Sie verwenden, hängen vom Typ der Publikation ab, zu der der Artikel gehört.

Um die Eigenschaften eines Artikels anzuzeigen, der zu einer Momentaufnahme- oder Transaktionsveröffentlichung gehört

  1. Führen Sie sp_helparticle aus, und geben Sie den Namen der Publikation für den parameter @publication und den Namen des Artikels für den @article-Parameter an. Wenn Sie @article nicht angeben, werden Informationen für alle Artikel in der Publikation zurückgegeben.

  2. Führen Sie sp_helparticlecolumns aus, damit Tabellenartikel alle spalten auflisten, die in der Basistabelle verfügbar sind.

So ändern Sie die Eigenschaften eines Artikels, der zu einer Momentaufnahme oder einer Transaktionsveröffentlichung gehört

  1. Führen Sie sp_changearticle aus, und geben Sie die im @property Parameter geänderte Artikeleigenschaft und den neuen Wert dieser Eigenschaft im @value-Parameter an.

    Hinweis

    Wenn für die Änderung die Generierung einer neuen Momentaufnahme erforderlich ist, müssen Sie auch einen Wert von 1 für @force_invalidate_snapshot angeben, und wenn die Änderung erfordert, dass Abonnenten erneut initialisiert werden, müssen Sie auch einen Wert von 1 für @force_reinit_subscription angeben. Weitere Informationen zu den Eigenschaften, die bei Änderung eine neue Momentaufnahme oder erneute Initialisierung erfordern, finden Sie unter Ändern der Publikations- und Artikeleigenschaften.

So zeigen Sie die Eigenschaften eines Artikels an, der zu einer Zusammenführungsveröffentlichung gehört

  1. Führen Sie sp_helpmergearticle aus, und geben Sie den Namen der Publikation für den parameter @publication und den Namen des Artikels für den parameter @article an. Wenn Sie diese Parameter nicht angeben, werden Informationen für alle Artikel in einer Publikation oder im Herausgeber zurückgegeben.

  2. Führen Sie sp_helpmergearticlecolumn aus, damit Tabellenartikel alle spalten auflisten, die in der Basistabelle verfügbar sind.

So ändern Sie die Eigenschaften eines Artikels, der zu einer Zusammenführungsveröffentlichung gehört

  1. Führen Sie sp_changemergearticle aus, und geben Sie die Artikeleigenschaft an, die im @property-Parameter geändert wird, und den neuen Wert dieser Eigenschaft im @value-Parameter .

    Hinweis

    Wenn für die Änderung die Generierung einer neuen Momentaufnahme erforderlich ist, müssen Sie auch einen Wert von 1 für @force_invalidate_snapshot angeben, und wenn die Änderung erfordert, dass Abonnenten erneut initialisiert werden, müssen Sie auch einen Wert von 1 für @force_reinit_subscription angeben. Weitere Informationen zu den Eigenschaften, die bei Änderung eine neue Momentaufnahme oder erneute Initialisierung erfordern, finden Sie unter Ändern der Publikations- und Artikeleigenschaften.

Beispiel (Transact-SQL)

Dieses Transaktionsreplikationsbeispiel gibt die Eigenschaften des veröffentlichten Artikels zurück.

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

USE [AdventureWorks2012]
EXEC sp_helparticle
  @publication = @publication;
GO

In diesem Beispiel für die Transaktionsreplikation werden die Schemaoptionen für den veröffentlichten Artikel geändert.

DECLARE @publication AS sysname;
DECLARE @article AS sysname;
DECLARE @option AS int;
SET @publication = N'AdvWorksProductTran';
SET @article = N'Product';
SET @option = (SELECT CAST(0x0000000002030073 AS int));

-- Change the schema options to replicate schema with XML.
USE [AdventureWorks2012]
EXEC sp_changearticle 
  @publication = @publication,
  @article = @article, 
  @property = N'schema_option', 
  @value = @option,
  @force_invalidate_snapshot = 1;
GO

In diesem Zusammenführungsreplikationsbeispiel werden die Eigenschaften des veröffentlichten Artikels angezeigt.

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

USE [AdventureWorks2012]
EXEC sp_helpmergearticle
  @publication = @publication;
GO

In diesem Zusammenführungsreplikationsbeispiel werden die Konflikterkennungseinstellungen für einen veröffentlichten Artikel geändert.

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

-- Enable column-level conflict tracking.
-- Changing this property requires that existing subscriptions
-- be reinitialized and that a new snapshot be generated.
USE [AdventureWorks2012]
EXEC sp_changemergearticle 
  @publication = @publication,
  @article = @article, 
  @property = N'column_tracking', 
  @value = N'true',
  @force_invalidate_snapshot = 1,
  @force_reinit_subscription = 1;
GO

Verwenden von Replikationsverwaltungsobjekten (RMO)

Sie können Artikel ändern und programmgesteuert auf ihre Eigenschaften zugreifen, indem Sie Replikationsverwaltungsobjekte (Replication Management Objects, RMO) verwenden. Die RMO-Klassen, die Sie zum Anzeigen oder Ändern von Artikeleigenschaften verwenden, hängen vom Typ der Publikation ab, zu der der Artikel gehört.

Zum Anzeigen oder Ändern von Eigenschaften eines Artikels, der zu einer Momentaufnahme- oder transaktionalen Publikation gehört.

  1. Erstellen Sie mithilfe der ServerConnection Klasse eine Verbindung mit dem Publisher.

  2. Erstellen Sie eine Instanz der TransArticle Klasse.

  3. Legen Sie die Eigenschaften Name, PublicationNameund DatabaseName fest.

  4. Legen Sie die Verbindung aus Schritt 1 für die ConnectionContext Eigenschaft fest.

  5. Rufen Sie die LoadProperties Methode auf, um die Eigenschaften des Objekts abzurufen. Wenn diese Methode zurückgegeben wird false, wurden entweder die Artikeleigenschaften in Schritt 3 falsch definiert, oder der Artikel ist nicht vorhanden.

  6. (Optional) Wenn Sie Eigenschaften ändern möchten, legen Sie einen neuen Wert für eine der Eigenschaften fest, die TransArticle festgelegt werden können.

  7. (Optional) Wenn Sie einen Wert von true for CachePropertyChangesangegeben haben, rufen Sie die CommitPropertyChanges Methode auf, um Änderungen auf dem Server zu übernehmen. Wenn Sie einen Wert für falseCachePropertyChanges (standard) angegeben haben, werden Änderungen sofort an den Server gesendet.

Um die Eigenschaften eines Artikels, der zu einer Zusammenführungsveröffentlichung gehört, anzusehen oder zu ändern

  1. Erstellen Sie mithilfe der ServerConnection Klasse eine Verbindung mit dem Publisher.

  2. Erstellen Sie eine Instanz der MergeArticle Klasse.

  3. Legen Sie die Eigenschaften Name, PublicationNameund DatabaseName fest.

  4. Legen Sie die Verbindung aus Schritt 1 für die ConnectionContext Eigenschaft fest.

  5. Rufen Sie die LoadProperties Methode auf, um die Eigenschaften des Objekts abzurufen. Wenn diese Methode zurückgegeben wird false, wurden entweder die Artikeleigenschaften in Schritt 3 falsch definiert, oder der Artikel ist nicht vorhanden.

  6. (Optional) Wenn Sie Eigenschaften ändern möchten, legen Sie einen neuen Wert für eine der Eigenschaften fest, die MergeArticle festgelegt werden können.

  7. (Optional) Wenn Sie einen Wert von true for CachePropertyChangesangegeben haben, rufen Sie die CommitPropertyChanges Methode auf, um Änderungen auf dem Server zu übernehmen. Wenn Sie einen Wert für falseCachePropertyChanges (standard) angegeben haben, werden Änderungen sofort an den Server gesendet.

Beispiel (RMO)

In diesem Beispiel wird ein Zusammenführungsartikel so geändert, dass der vom Artikel verwendete Geschäftslogikhandler angegeben wird.

// Define the Publisher, publication, and article names.
string publisherName = publisherInstance;
string publicationName = "AdvWorksSalesOrdersMerge";
string publicationDbName = "AdventureWorks2012";
string articleName = "SalesOrderHeader";

// Set the friendly name of the business logic handler.
string customLogic = "OrderEntryLogic";

MergeArticle article = new MergeArticle();

// Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(publisherName);

try
{
    // Connect to the Publisher.
    conn.Connect();

    // Set the required properties for the article.
    article.ConnectionContext = conn;
    article.Name = articleName;
    article.DatabaseName = publicationDbName;
    article.PublicationName = publicationName;

    // Load the article properties.
    if (article.LoadProperties())
    {
        article.ArticleResolver = customLogic;
    }
    else
    {
        // Throw an exception of the article does not exist.
        throw new ApplicationException(String.Format(
        "{0} is not published in {1}", articleName, publicationName));
    }
    
}
catch (Exception ex)
{
    // Do error handling here and rollback the transaction.
    throw new ApplicationException(String.Format(
        "The business logic handler {0} could not be associated with " +
        " the {1} article.",customLogic,articleName), ex);
}
finally
{
    conn.Disconnect();
}
' Define the Publisher, publication, and article names.
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2012"
Dim articleName As String = "SalesOrderHeader"

' Set the friendly name of the business logic handler.
Dim customLogic As String = "OrderEntryLogic"

Dim article As MergeArticle = New MergeArticle()

' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)

Try
    ' Connect to the Publisher.
    conn.Connect()

    ' Set the required properties for the article.
    article.ConnectionContext = conn
    article.Name = articleName
    article.DatabaseName = publicationDbName
    article.PublicationName = publicationName

    ' Load the article properties.
    If article.LoadProperties() Then
        article.ArticleResolver = customLogic
    Else
        ' Throw an exception of the article does not exist.
        Throw New ApplicationException(String.Format( _
         "{0} is not published in {1}", articleName, publicationName))
    End If

Catch ex As Exception
    ' Do error handling here and rollback the transaction.
    Throw New ApplicationException(String.Format( _
     "The business logic handler {0} could not be associated with " + _
     " the {1} article.", customLogic, articleName), ex)
Finally
    conn.Disconnect()
End Try

Siehe auch

Implementieren eines Geschäftslogikhandlers für einen Mergeartikel
Veröffentlichen von Daten- und Datenbankobjekten
Ändern von Publikations- und Artikeleigenschaften
Konzepte für gespeicherte Replikationssystem-Prozeduren
Erweiterte Konflikterkennung und -lösung bei der Zusammenführungsreplikation