Zobrazit a upravit vlastnosti článku

Platí pro:SQL ServerAzure SQL Managed Instance

Toto téma popisuje, jak zobrazit a upravit vlastnosti článků v SQL Server pomocí SQL Server Management Studio, Transact-SQL nebo Replication Management Objects (RMO).

Limitace a omezení

  • Některé vlastnosti nelze upravovat po vytvoření publikace a jiné nelze upravit, pokud jsou k publikaci předplatitelé. Vlastnosti, které nelze upravit, se zobrazují pouze pro čtení.

Recommendations

Použití aplikace SQL Server Management Studio

Zobrazit a upravit vlastnosti článku v dialogovém okně Vlastnosti publikace – <Publikace>, které je dostupné v Microsoft SQL Server Management Studio a Replication Monitor. Informace o spuštění služby Replication Monitor naleznete v tématu Spuštění monitorování replikace.

  • Obecná stránka obsahuje název a popis publikace, název databáze, typ publikace a nastavení expirace předplatného.

  • Stránka Články odpovídá stránce Články v Čaroději pro nové publikace. Použijte tuto stránku k přidávání a mazání článků a ke změně vlastností a filtrování sloupců pro články.

  • Stránka Řádky filtrů odpovídá stránce řádků tabulky filtrů v Wizardu nové publikace. Použijte tuto stránku k přidávání, úpravám a mazání statických řádkových filtrů pro všechny typy publikací a k přidávání, úpravám a mazání parametrizovaných řádkových filtrů a spojovacích filtrů pro sloučení publikací.

  • Stránka Snapshot vám umožňuje určit formát a umístění snímku, zda má být snapshot komprimován, a skripty pro spuštění před a po aplikaci snapshotu.

  • Stránka FTP Snapshot (pro publikace snímků a transakční publikace a slučovací publikace pro Vydavatele používající verze starší než SQL Server 2005) umožňuje určit, zda Odběratelé mohou stahovat soubory snímku prostřednictvím protokolu FTP.

  • Stránka FTP Snapshot and Internet (pro slučovací publikace od vydavatelů používajících SQL Server 2005 nebo novější) umožňuje určit, zda mohou předplatitelé stahovat soubory snímku přes FTP, a zda mohou synchronizovat předplatná přes protokol HTTPS.

  • Stránka Možnosti předplatného vám umožňuje nastavit řadu možností, které platí pro všechna předplatná. Možnosti se liší podle typu publikace.

  • Stránka Seznam přístupu k publikacím vám umožňuje určit, které přihlašovací údaje a skupiny mohou k publikaci přistupovat.

  • Stránka Agent Security vám umožňuje přístup k nastavením účtů, pod kterými následující agenti běží, a navazovat spojení s počítači v replikační topologii: Snapshot Agent pro všechny publikace; Log Reader Agent pro všechny transakční publikace; a Queue Reader Agent pro transakční publikace, které umožňují aktualizační odběry ve frontě.

  • Stránka Data Partitions (pro sloučení publikací od vydavatelů běžících na SQL Server 2005 nebo novějším) umožňuje určit, zda odběratelé publikací s parametrizovanými filtry mohou požádat o snapshot, pokud není k dispozici. Umožňuje také vytvářet snímky pro jeden nebo více oddílů, buď jednorázově, nebo podle opakovaného plánu.

Pro zobrazení a úpravu vlastností článku

  1. Na stránce Články v dialogovém okně Vlastnosti publikace - <Publikace> vyberte článek a poté klikněte na Vlastnosti článku.

  2. Vyberte změny vlastností článků, které by se měly vztahovat na:

    • Klikněte na Nastavit vlastnosti zvýrazněného <objektu> Typ článku pro spuštění dialogového okna Vlastnosti článku - <Název> objektu; změny vlastností provedené v tomto dialogovém okně se aplikují pouze na objekt zvýrazněný v panelu objektu na stránce Články.

    • Klikněte na Nastavit vlastnosti všech <článků typu objektu> pro spuštění dialogového okna Vlastnosti pro všechny <články typu objektu>; změny vlastností provedené v tomto dialogovém okně se aplikují na všechny objekty tohoto typu v panelu objektů na stránce článků, včetně těch, které ještě nejsou vybrány k publikaci.

      Note

      Změny vlastností provedené v dialogovém okně Vlastnosti pro všechny <články typu objektu> přepisují všechny předchozí změny v dialogovém okně Vlastnosti článku - <Název objektu>. Pokud například chcete nastavit počet výchozích hodnot pro všechny články určitého typu objektu, ale zároveň chcete nastavit některé vlastnosti pro jednotlivé objekty, nastavte výchozí hodnoty pro všechny články jako první. Poté nastavte vlastnosti jednotlivých objektů.

  3. V případě potřeby upravte všechny vlastnosti a klepněte na tlačítko OK.

  4. Klikněte na OK v dialogovém okně Vlastnosti publikace - <Publikace> .

Použití Transact-SQL

Články lze upravovat a jejich vlastnosti programově vracet pomocí uložených procedur replikace. Uložené postupy, které použijete, závisí na typu publikace, ke které článek patří.

Pro zobrazení vlastností článku patřícího do snapshot nebo transakční publikace

  1. Spusťte sp_helparticle, zadejte název publikace pro parametr @publication a název článku pro parametr @article. Pokud neuvedete žádné informace @article, budou vráceny informace ke všem článkům v publikaci.

  2. Spusťte sp_helparticlecolumns pro články typu tabulka, chcete-li vypsat všechny sloupce dostupné v základní tabulce.

Úprava vlastností článku patřícího k snapshot nebo transakční publikaci

  1. Proveďte sp_changearticle, specifikujte vlastnost článku, která se mění v parametru @property , a novou hodnotu této vlastnosti v parametru @value .

    Note

    Pokud změna vyžaduje generování nového snímku, musíte také zadat hodnotu 1 pro @force_invalidate_snapshot, a pokud změna vyžaduje opětovnou inicializaci Subscribers, musíte také zadat hodnotu 1 pro @force_reinit_subscription. Pro více informací o vlastnostech, které po změně vyžadují nový snapshot nebo reinicializaci, viz Změna publikace a vlastnosti článků.

Pro zobrazení vlastností článku patřícího do sloučené publikace

  1. Spusťte sp_helpmergearticle a zadejte název publikace pro parametr @publication a název článku pro parametr @article. Pokud tyto parametry nespecifikujete, informace budou vráceny ke všem článkům v publikaci nebo u vydavatele.

  2. Spusťte sp_helpmergearticlecolumn u článků tabulky, aby se vypsaly všechny sloupce dostupné v základní tabulce.

Úprava vlastností článku patřícího ke slučované publikaci

  1. Proveďte sp_changemergearticle, specifikujte vlastnost článku, která se mění v parametru @property , a novou hodnotu této vlastnosti v parametru @value .

    Note

    Pokud změna vyžaduje generování nového snímku, musíte také zadat hodnotu 1 pro @force_invalidate_snapshot, a pokud změna vyžaduje opětovnou inicializaci Subscribers, musíte také zadat hodnotu 1 pro @force_reinit_subscription. Pro více informací o vlastnostech, které po změně vyžadují nový snapshot nebo reinicializaci, viz Změna publikace a vlastnosti článků.

Příklad (Transact-SQL)

Tento příklad transakční replikace vrací vlastnosti publikovaného článku.

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

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

Tento příklad transakční replikace mění možnosti schématu pro publikovaný článek.

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

Tento příklad replikace sloučení vrací vlastnosti publikovaného článku.

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

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

Tento příklad replikace při sloučení mění nastavení detekce konfliktů pro publikovaný článek.

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

Použití objektů správy replikace (RMO)

Články můžete programově upravovat a přistupovat k jejich vlastnostem pomocí Replication Management Objects (RMO). RMO třídy, které používáte k prohlížení nebo úpravě vlastností článku, závisí na typu publikace, ke které článek patří.

Zobrazit nebo upravit vlastnosti článku, který patří do snapshot nebo transakční publikace

  1. Vytvořte připojení k Publisheru pomocí ServerConnection třídy.

  2. Vytvořte instanci TransArticle třídy.

  3. Nastavte vlastnosti Name, PublicationNamea DatabaseName.

  4. Nastavte připojení z kroku 1 pro vlastnost ConnectionContext.

  5. Zavolejte metodu LoadProperties pro získání vlastností objektu. Pokud tato metoda vrátí false, buď vlastnosti článku v kroku 3 byly definovány nesprávně nebo neexistuje článek.

  6. (Volitelné) Pro změnu vlastností nastavte novou hodnotu pro jednu z vlastností TransArticle , kterou lze nastavit.

  7. (Volitelné) Pokud jste zadali hodnotu true pro CachePropertyChanges, zavolejte metodu CommitPropertyChanges pro commit changes na serveru. Pokud jste zadali hodnotu false pro CachePropertyChanges (výchozí), změny jsou okamžitě odeslány na server.

Pro zobrazení nebo úpravu vlastností článku, který patří do sloučení publikace

  1. Vytvořte připojení k Publisheru pomocí ServerConnection třídy.

  2. Vytvořte instanci MergeArticle třídy.

  3. Nastavte vlastnosti Name, PublicationNamea DatabaseName.

  4. Nastavte připojení z kroku 1 pro vlastnost ConnectionContext.

  5. Zavolejte metodu LoadProperties pro získání vlastností objektu. Pokud tato metoda vrátí false, buď vlastnosti článku v kroku 3 byly definovány nesprávně nebo neexistuje článek.

  6. (Volitelné) Pro změnu vlastností nastavte novou hodnotu pro jednu z vlastností MergeArticle , kterou lze nastavit.

  7. (Volitelné) Pokud jste zadali hodnotu true pro CachePropertyChanges, zavolejte metodu CommitPropertyChanges pro commit changes na serveru. Pokud jste zadali hodnotu false pro CachePropertyChanges (výchozí), změny jsou okamžitě odeslány na server.

Příklad (RMO)

Tento příklad změní článek typu merge tak, aby určoval obslužnou rutinu obchodní logiky, kterou článek používá.

// 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