Share via


sp_articlecolumn (Transact-SQL)

Wird verwendet, um die in einem Artikel enthaltenen Spalten zum vertikalen Filtern der Daten in einer veröffentlichten Tabelle anzugeben. Diese gespeicherte Prozedur wird auf dem Verleger für die Veröffentlichungsdatenbank ausgeführt.

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen

Syntax

sp_articlecolumn [ @publication = ] 'publication' 
        , [ @article = ] 'article'
    [ , [ @column = ] 'column' ]
    [ , [ @operation = ] 'operation' ]
    [ , [ @refresh_synctran_procs = ] refresh_synctran_procs ]
    [ , [ @ignore_distributor = ] ignore_distributor ]
    [ , [ @change_active = ] change_actve ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
    [ , [ @publisher = ] 'publisher' ]
    [ , [ @internal = ] 'internal' ]

Argumente

  • [ @publication=] 'publication'
    Der Name der Veröffentlichung, die diesen Artikel enthält. publication ist vom Datentyp sysname und hat keinen Standardwert.

  • [ @article=] 'article'
    Der Name des Artikels. article ist vom Datentyp sysname und hat keinen Standardwert.

  • [ @column=] 'column'
    Der Name der Spalte, die hinzugefügt oder gelöscht werden soll. column ist vom Datentyp sysname und hat den Standardwert NULL. Bei NULL werden alle Spalten veröffentlicht.

  • [ @operation=] 'operation'
    Gibt an, ob Spalten in einem Artikel hinzugefügt oder gelöscht werden sollen. operation ist vom Datentyp nvarchar(5). Der Standardwert ist add. Mit add wird die Spalte für die Replikation markiert. Mit drop wird die Markierung der Spalte entfernt.

  • [ @refresh_synctran_procs=] refresh_synctran_procs
    Gibt an, ob die gespeicherten Prozeduren, die Abonnements mit sofortigem Update unterstützen, entsprechend der Anzahl replizierter Spalten erneut generiert werden. refresh_synctran_procs ist vom vom Datentyp bit und hat den Standardwert 1. Bei 1 werden die gespeicherten Prozeduren neu generiert.

  • [ @ignore_distributor =] ignore_distributor
    Gibt an, ob diese gespeicherte Prozedur ausgeführt wird, ohne eine Verbindung mit dem Verteiler herzustellen. ignore_distributor ist vom vom Datentyp bit und hat den Standardwert 0. Bei 0 muss die Datenbank für die Veröffentlichung aktiviert sein, und der Artikelcache sollte aktualisiert werden, damit die neuen vom Artikel replizierten Spalten berücksichtigt werden. Bei 1 können Artikelspalten für Artikel, die in einer nicht veröffentlichten Datenbank gespeichert sind, gelöscht werden. Dieser Wert sollte nur bei Wiederherstellungsmaßnahmen verwendet werden.

  • [ @change_active = ] change_active
    Ermöglicht das Ändern der Spalten in Veröffentlichungen, für die Abonnements vorhanden sind. change_active ist vom Datentyp int. Der Standardwert ist 0. Bei 0 werden Spalten nicht bearbeitet. Bei 1 können Spalten zu aktiven Artikeln, die Abonnements aufweisen, hinzugefügt oder aus ihnen gelöscht werden.

  • [ @force_invalidate_snapshot = ] force_invalidate_snapshot
    Bestätigt, dass durch die von dieser gespeicherten Prozedur ausgeführte Aktion möglicherweise eine vorhandene Momentaufnahme ungültig wird. force_invalidate_snapshot ist vom Datentyp bit. Der Standardwert ist 0.

    Der Wert 0 gibt an, dass Änderungen an dem Artikel nicht bewirken, dass die Momentaufnahme ungültig wird. Wenn die gespeicherte Prozedur erkennt, dass die Änderungen eine neue Momentaufnahme erfordern, tritt ein Fehler auf und es werden keine Änderungen vorgenommen.

    Der Wert 1 gibt an, dass die Momentaufnahme durch Ändern des Artikels ungültig werden kann. Wenn Abonnements vorhanden sind, die eine neue Momentaufnahme erfordern, wird mit diesem Wert die Berechtigung erteilt, die vorhandene Momentaufnahme als veraltet zu markieren und eine neue Momentaufnahme zu generieren.

  • [@force_reinit_subscription = ] force_reinit_subscription
    Bestätigt, dass die von dieser gespeicherten Prozedur ausgeführte Aktion möglicherweise das erneute Initialisieren von vorhandenen Abonnements erfordert. force_reinit_subscription ist vom Datentyp bit. Der Standardwert ist 0.

    Durch 0 wird angegeben, dass das Abonnement nicht durch Änderungen am Artikel erneut initialisiert werden kann. Wenn die gespeicherte Prozedur erkennt, dass die Änderung die erneute Initialisierung von Abonnements erfordert, tritt ein Fehler auf, und es werden keine Änderungen durchgeführt. Der Wert 1 gibt an, dass Änderungen am Artikel die erneute Initialisierung vorhandener Abonnements bewirken. Außerdem wird mit diesem Wert die Berechtigung zur erneuten Initialisierung des Abonnements erteilt.

  • [ @publisher= ] 'publisher'
    Gibt einen Nicht-Microsoft SQL Server-Verleger an. publisher ist vom Datentyp sysname und hat den Standardwert NULL.

    HinweisHinweis

    publisher sollte nicht mit einem SQL Server-Verleger verwendet werden.

  • [ @internal= ] 'internal'
    Nur interne Verwendung.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_articlecolumn wird bei der Momentaufnahme- und Transaktionsreplikation verwendet.

Mit sp_articlecolumn können nur nicht abonnierte Artikel gefiltert werden.

Beispiel

DECLARE @publication    AS sysname;
DECLARE @table AS sysname;
DECLARE @filterclause AS nvarchar(500);
DECLARE @filtername AS nvarchar(386);
DECLARE @schemaowner AS sysname;
SET @publication = N'AdvWorksProductTran'; 
SET @table = N'Product';
SET @filterclause = N'[DiscontinuedDate] IS NULL'; 
SET @filtername = N'filter_out_discontinued';
SET @schemaowner = N'Production';

-- Add a horizontally and vertically filtered article for the Product table.
-- Manually set @schema_option to ensure that the Production schema 
-- is generated at the Subscriber (0x8000000).
EXEC sp_addarticle 
    @publication = @publication, 
    @article = @table, 
    @source_object = @table,
    @source_owner = @schemaowner, 
    @schema_option = 0x80030F3,
    @vertical_partition = N'true', 
    @type = N'logbased',
    @filter_clause = @filterclause;

-- (Optional) Manually call the stored procedure to create the 
-- horizontal filtering stored procedure. Since the type is 
-- 'logbased', this stored procedures is executed automatically.
EXEC sp_articlefilter 
    @publication = @publication, 
    @article = @table, 
    @filter_clause = @filterclause, 
    @filter_name = @filtername;

-- Add all columns to the article.
EXEC sp_articlecolumn 
    @publication = @publication, 
    @article = @table;

-- Remove the DaysToManufacture column from the article
EXEC sp_articlecolumn 
    @publication = @publication, 
    @article = @table, 
    @column = N'DaysToManufacture', 
    @operation = N'drop';

-- (Optional) Manually call the stored procedure to create the 
-- vertical filtering view. Since the type is 'logbased', 
-- this stored procedures is executed automatically.
EXEC sp_articleview 
    @publication = @publication, 
    @article = @table,
    @filter_clause = @filterclause;
GO

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin oder der festen Datenbankrolle db_owner können sp_articlecolumn ausführen.

Siehe auch

Verweis

sp_addarticle (Transact-SQL)

sp_articleview (Transact-SQL)

sp_changearticle (Transact-SQL)

sp_droparticle (Transact-SQL)

sp_helparticle (Transact-SQL)

sp_helparticlecolumns (Transact-SQL)

Gespeicherte Replikationsprozeduren (Transact-SQL)

Konzepte

Definieren eines Artikels

Definieren und Ändern eines Spaltenfilters

Filtern von veröffentlichten Daten