Przeglądaj i modyfikuj właściwości artykułu

Dotyczy:SQL ServerAzure SQL Managed Instance

Ten temat opisuje, jak przeglądać i modyfikować właściwości artykułów w SQL Server za pomocą SQL Server Management Studio, Transact-SQL lub Replication Management Objects (RMO).

Ograniczenia i ograniczenia

  • Niektóre własności nie mogą być modyfikowane po utworzeniu publikacji, a inne nie mogą być modyfikowane, jeśli istnieją subskrypcje publikacji. Właściwości, których nie można zmienić, są wyświetlane jako tylko do odczytu.

Zalecenia

Korzystanie z programu SQL Server Management Studio

Przeglądaj i modyfikuj właściwości artykułu w oknie dialogowym Właściwości Publikacji – <Publikacja>, które jest dostępne w Microsoft SQL Server Management Studio oraz Monitorze Replikacji. Aby uzyskać informacje na temat uruchamiania monitora replikacji, zobacz Uruchamianie monitora replikacji.

  • Strona ogólna zawiera nazwę i opis publikacji, nazwę bazy danych, typ publikacji oraz ustawienia wygaśnięcia subskrypcji.

  • Strona Artykuły odpowiada stronie Artykuły w Kreatorze nowej publikacji. Użyj tej strony do dodawania i usuwania artykułów oraz zmiany właściwości i filtrowania kolumn dla artykułów.

  • Strona Filtruj wiersze odpowiada stronie Filtruj wiersze tabeli w kreatorze nowej publikacji. Użyj tej strony do dodawania, edytowania i usuwania statycznych filtrów wierszy dla wszystkich typów publikacji oraz do dodawania, edytowania i usuwania parametryzowanych filtrów wierszowych oraz filtrów łączenia dla publikacji scalanych.

  • Strona Snapshot pozwala określić format i lokalizację snapshota, czy migawka powinna być skompresowana oraz skrypty uruchamiane przed i po jej zastosowaniu.

  • Strona FTP Snapshot (dla publikacji migawkowych i transakcyjnych oraz publikacji typu merge dla wydawców korzystających z wersji wcześniejszych niż SQL Server 2005) umożliwia określenie, czy subskrybenci mogą pobierać pliki migawki za pośrednictwem protokołu FTP (File Transfer Protocol).

  • Strona FTP Snapshot i Internet (do łączenia publikacji od wydawców działających na SQL Server 2005 lub nowszych) pozwala określić, czy subskrybenci mogą pobierać pliki snapshot przez FTP oraz czy subskrybenci mogą synchronizować subskrypcje przez HTTPS.

  • Strona Opcje subskrypcji pozwala ustawić szereg opcji obowiązujących dla wszystkich subskrypcji. Opcje różnią się w zależności od rodzaju publikacji.

  • Strona Listy Dostępu do Publikacji pozwala określić, które logowania i grupy mają dostęp do publikacji.

  • Strona Agent Security pozwala uzyskać dostęp do ustawień kont, pod którymi działają poniżsi agenci, oraz nawiązywać połączenia z komputerami w topologii replikacji: Snapshot Agent dla wszystkich publikacji; Log Reader Agent dla wszystkich publikacji transakcyjnych; oraz Queue Reader Agent dla publikacji transakcyjnych umożliwiających kolejkowe aktualizacje subskrypcji.

  • Strona Data Partitions (w przypadku publikacji scalanych od wydawców korzystających z programu SQL Server 2005 lub nowszego) umożliwia określenie, czy subskrybenci publikacji z filtrami sparametryzowanymi mogą żądać migawki, jeśli nie jest ona dostępna. Umożliwia także generowanie migawek dla jednej bądź wielu partycji, jednorazowo albo zgodnie z harmonogramem cyklicznym.

Aby przeglądać i modyfikować właściwości artykułu

  1. Na stronie Artykuły w oknie dialogowym Właściwości publikacji - <Publikacja> wybierz artykuł, a następnie kliknij Właściwości artykułu.

  2. Wybierz, do których zmian właściwości artykułów powinny się odnieść:

    • Kliknij Ustaw właściwości podświetlonego <typu obiektu>, aby uruchomić okno dialogowe Właściwości artykułu - <Nazwa> obiektu; zmiany właściwości dokonane w tym oknie dialogowym są stosowane tylko do obiektu podświetlonego w panelu obiektów na stronie Artykuły.

    • Kliknij Ustaw właściwości wszystkich artykułów <ObjectType>, aby otworzyć okno dialogowe Właściwości wszystkich artykułów <ObjectType>; zmiany właściwości wprowadzone w tym oknie dialogowym są stosowane do wszystkich obiektów tego typu w panelu obiektów na stronie Artykuły, w tym również do tych, które nie zostały jeszcze wybrane do publikacji.

      Uwaga / Notatka

      Zmiany właściwości dokonane w oknie dialogowym Właściwości dla wszystkich <artykułów typu obiektu> nadpisują wszelkie wcześniejsze zmiany w oknie Właściwości artykułu - <Nazwa obiektu>. Jeśli na przykład chcesz ustawić liczbę domyślnych wartości dla wszystkich artykułów danego typu obiektu, ale także ustawić niektóre właściwości dla poszczególnych obiektów, najpierw ustaw domyślne dla wszystkich artykułów. Następnie ustaw właściwości dla poszczególnych obiektów.

  3. W razie potrzeby zmodyfikuj wszelkie właściwości, a następnie kliknij przycisk OK.

  4. Kliknij OK w oknie dialogowym Właściwości publikacji - <Publikacja> .

Korzystanie z Transact-SQL

Artykuły mogą być modyfikowane, a ich właściwości mogą być pobierane programowo za pomocą procedur składowanych replikacji. Procedury przechowywane, których używasz, zależą od rodzaju publikacji, do której należy artykuł.

Aby wyświetlić właściwości artykułu należącego do publikacji migawkowej lub transakcyjnej

  1. Wykonaj sp_helparticle, określając nazwę publikacji dla parametru @publication oraz nazwę artykułu dla parametru @article . Jeśli nie określisz @article, zostaną zwrócone informacje o wszystkich artykułach w publikacji.

  2. Wykonaj sp_helparticlecolumns dla artykułów opartych na tabelach, aby wyświetlić wszystkie kolumny dostępne w tabeli bazowej.

Aby zmodyfikować właściwości artykułu należącego do publikacji migawkowej lub transakcyjnej

  1. Wykonaj sp_changearticle, podając w parametrze @property właściwość artykułu, która ma zostać zmieniona, a w parametrze @value nową wartość tej właściwości.

    Uwaga / Notatka

    Jeśli zmiana wymaga wygenerowania nowej migawki, musisz również określić wartość 1 dla @force_reinit_subscription, a jeśli zmiana wymaga ponownej inicjalizacji subskrybentów, musisz również określić wartość 1 dla @force_invalidate_snapshot. Więcej informacji o właściwościach, które po zmianie wymagają nowego snapshotu lub ponownej inicjalizacji, można znaleźć w sekcji Zmień publikację i właściwości artykułu.

Aby wyświetlić właściwości artykułu należącego do publikacji scalanej

  1. Wykonaj sp_helpmergearticle, określając nazwę publikacji dla parametru @publication oraz nazwę artykułu dla parametru @article . Jeśli nie określisz tych parametrów, informacje zostaną zwrócone dla wszystkich artykułów w publikacji lub u wydawcy.

  2. Wykonaj sp_helpmergearticlecolumn dla artykułów typu tabela, aby wyświetlić listę wszystkich kolumn dostępnych w tabeli bazowej.

Aby zmodyfikować właściwości artykułu należącego do publikacji scalonej

  1. Wykonaj sp_changemergearticle, określając właściwość artykułu, która jest zmieniana, w parametrze @property, oraz nową wartość tej właściwości w parametrze @value.

    Uwaga / Notatka

    Jeśli zmiana wymaga wygenerowania nowej migawki, musisz również określić wartość 1 dla @force_reinit_subscription, a jeśli zmiana wymaga ponownej inicjalizacji subskrybentów, musisz również określić wartość 1 dla @force_invalidate_snapshot. Więcej informacji o właściwościach, które po zmianie wymagają nowego snapshotu lub ponownej inicjalizacji, można znaleźć w sekcji Zmień publikację i właściwości artykułu.

Przykład (Transact-SQL)

Ten przykład replikacji transakcyjnej zwraca właściwości opublikowanego artykułu.

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

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

Ten przykład replikacji transakcyjnej zmienia opcje schematu opublikowanego artykułu.

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 [AdventureWorks2022]
EXEC sp_changearticle 
  @publication = @publication,
  @article = @article, 
  @property = N'schema_option', 
  @value = @option,
  @force_invalidate_snapshot = 1;
GO

Ten przykład replikacji scalania zwraca właściwości opublikowanego artykułu.

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

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

Ten przykład replikacji merge zmienia ustawienia wykrywania konfliktów w opublikowanym artykule.

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 [AdventureWorks2022]
EXEC sp_changemergearticle 
  @publication = @publication,
  @article = @article, 
  @property = N'column_tracking', 
  @value = N'true',
  @force_invalidate_snapshot = 1,
  @force_reinit_subscription = 1;
GO

Korzystanie z obiektów zarządzania replikacją (RMO)

Możesz modyfikować artykuły i programowo uzyskiwać dostęp do ich właściwości, korzystając z Obiektów Zarządzania Replikacją (RMO). Klasy RMO, których używasz do przeglądania lub modyfikowania właściwości artykułów, zależą od rodzaju publikacji, do której artykuł należy.

Wyświetlanie lub modyfikowanie właściwości artykułu należącego do publikacji migawkowej lub transakcyjnej

  1. Utwórz połączenie z programem Publisher przy użyciu klasy ServerConnection.

  2. Utwórz wystąpienie klasy TransArticle.

  3. Ustaw właściwości Name, PublicationNamei DatabaseName.

  4. Ustaw połączenie z kroku 1 dla właściwości ConnectionContext.

  5. Wywołaj metodę LoadProperties, aby uzyskać właściwości obiektu. Jeśli ta metoda zwraca false, właściwości artykułu w kroku 3 zostały niepoprawnie zdefiniowane lub artykuł nie istnieje.

  6. (Opcjonalnie) Aby zmienić właściwości, ustaw nową wartość dla jednej z właściwości, TransArticle którą można ustawić.

  7. (Opcjonalnie) Jeśli określiłeś wartość true dla CachePropertyChanges, wywołaj metodę CommitPropertyChanges zatwierdzania zmian na serwerze. Jeśli określiłeś wartość false dla CachePropertyChanges (domyślnie), zmiany są natychmiast wysyłane na serwer.

Aby zobaczyć lub zmodyfikować właściwości artykułu należącego do publikacji scalonej

  1. Utwórz połączenie z programem Publisher przy użyciu klasy ServerConnection.

  2. Utwórz wystąpienie klasy MergeArticle.

  3. Ustaw właściwości Name, PublicationNamei DatabaseName.

  4. Ustaw połączenie z kroku 1 dla właściwości ConnectionContext.

  5. Wywołaj metodę LoadProperties, aby uzyskać właściwości obiektu. Jeśli ta metoda zwraca false, właściwości artykułu w kroku 3 zostały niepoprawnie zdefiniowane lub artykuł nie istnieje.

  6. (Opcjonalnie) Aby zmienić właściwości, ustaw nową wartość dla jednej z właściwości, MergeArticle którą można ustawić.

  7. (Opcjonalnie) Jeśli określiłeś wartość true dla CachePropertyChanges, wywołaj metodę CommitPropertyChanges zatwierdzania zmian na serwerze. Jeśli określiłeś wartość false dla CachePropertyChanges (domyślnie), zmiany są natychmiast wysyłane na serwer.

Przykład (RMO)

Ten przykład zmienia artykuł merge, aby określić program obsługi logiki biznesowej używany przez ten artykuł.

// Define the Publisher, publication, and article names.
string publisherName = publisherInstance;
string publicationName = "AdvWorksSalesOrdersMerge";
string publicationDbName = "AdventureWorks2022";
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 = "AdventureWorks2022"
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