Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Gebruikt om kolommen te specificeren die in een artikel zijn opgenomen om gegevens verticaal te filteren in een gepubliceerde tabel. Deze opgeslagen procedure wordt uitgevoerd bij Publisher in de publicatiedatabase.
Transact-SQL syntaxis-conventies
Syntax
sys.sp_articlecolumn
[ @publication = ] N'publication'
, [ @article = ] N'article'
[ , [ @column = ] N'column' ]
[ , [ @operation = ] N'operation' ]
[ , [ @refresh_synctran_procs = ] refresh_synctran_procs ]
[ , [ @ignore_distributor = ] ignore_distributor ]
[ , [ @change_active = ] change_active ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ , [ @publisher = ] N'publisher' ]
[ , [ @internal = ] internal ]
[ ; ]
Arguments
[ @publication = ] N'publicatie'
De naam van de publicatie waarin dit artikel staat. @publication is sysname, zonder standaard.
[ @article = ] N'artikel'
De naam van het artikel. @article is sysname, zonder standaard.
[ @column = ] N'column'
De naam van de kolom die toegevoegd of verwijderd moet worden.
@column is een systeemnaam, met als standaard .NULL Als NULL, worden alle kolommen gepubliceerd.
[ @operation = ] N'operation'
Geeft aan of kolommen in een artikel moeten worden toegevoegd of verwijderd.
@operation is nvarchar(5), met als standaard .add
-
addmarkeert de kolom voor replicatie. -
dropde kolom niet markeerd.
[ @refresh_synctran_procs = ] refresh_synctran_procs
Specificeert of de opgeslagen procedures die directe updates ondersteunen, worden geregenereerd om overeen te komen met het aantal gerepliceerde kolommen.
@refresh_synctran_procs is bit, met als standaard .1 Als 1, worden de opgeslagen procedures geregenereerd.
[ @ignore_distributor = ] ignore_distributor
Geeft aan of deze opgeslagen procedure wordt uitgevoerd zonder verbinding te maken met de Distributor.
@ignore_distributor is bit, met als standaard .0
- Als
0, moet de database worden ingeschakeld voor publicatie, en de artikelcache moet worden ververst om de nieuwe kolommen die door het artikel worden gerepliceerd weer te geven. - Als
1, laat het toe dat artikelkolommen worden verwijderd voor artikelen die zich in een niet-gepubliceerde database bevinden; moet alleen worden gebruikt in herstelsituaties.
[ @change_active = ] change_active
Maakt het mogelijk om de kolommen in publicaties met abonnementen aan te passen.
@change_active is int, met een standaard van 0.
- Als
0, worden kolommen niet aangepast. - Als
1, kunnen kolommen worden toegevoegd of verwijderd uit actieve artikelen met abonnementen.
[ @force_invalidate_snapshot = ] force_invalidate_snapshot
Erkent dat de actie die door deze opgeslagen procedure wordt uitgevoerd, een bestaande snapshot ongeldig kan maken.
@force_invalidate_snapshot is bit, met een standaardwaarde van 0.
-
0geeft aan dat wijzigingen in het artikel niet ertoe leiden dat de momentopname ongeldig is. Als de opgeslagen procedure detecteert dat de wijziging een nieuwe snapshot vereist, ontstaat er een fout en worden er geen wijzigingen aangebracht. -
1specificeert dat wijzigingen in het artikel ervoor kunnen zorgen dat de snapshot ongeldig wordt, en als er bestaande abonnementen zijn die een nieuwe snapshot vereisen, geeft het toestemming om de bestaande snapshot als verouderd te markeren en een nieuwe snapshot te genereren.
[ @force_reinit_subscription = ] force_reinit_subscription
Erkent dat de actie die door deze opgeslagen procedure wordt ondernomen, mogelijk vereist dat bestaande abonnementen opnieuw worden geïntialiseerd.
@force_reinit_subscription is bit, met een standaardwaarde van 0.
-
0geeft aan dat wijzigingen in het artikel niet ertoe leiden dat het abonnement opnieuw wordt geïnitialiseerd. Als de opgeslagen procedure detecteert dat de wijziging vereist dat abonnementen opnieuw geïnitialiseerd worden, treedt er een fout op en worden er geen wijzigingen aangebracht. -
1specificeert dat wijzigingen in het artikel ervoor zorgen dat bestaande abonnementen opnieuw worden geïntitialiseerd, en geeft toestemming voor de herinitialisatie van het abonnement.
[ @publisher = ] N'uitgever'
Specificeert een niet-SQL Server Publisher.
@publisher is sysname, met als standaard NULL.
@publisher mag niet met een SQL Server Publisher gebruikt worden.
[ @internal = ] intern
Alleen ter informatie geïdentificeerd. Wordt niet ondersteund. Toekomstige compatibiliteit is niet gegarandeerd.
Codewaarden retourneren
0 (geslaagd) of 1 (mislukt).
Remarks
sp_articlecolumn wordt gebruikt bij snapshotreplicatie en transactionele replicatie.
Alleen een niet-geabonneerd artikel kan worden gefilterd met .sp_articlecolumn
Examples
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
Permissions
Alleen leden van de sysadmin-vaste serverrol of db_owner vaste databaserol kunnen uitvoeren sp_articlecolumn.
Verwante inhoud
- Een artikel definiëren
- Een kolomfilter definiëren en wijzigen
- Filter gepubliceerde gegevens
- sp_addarticle (Transact-SQL)
- sp_articleview (Transact-SQL)
- sp_changearticle (Transact-SQL)
- sp_droparticle (Transact-SQL)
- sp_helparticle (Transact-SQL)
- sp_helparticlecolumns (Transact-SQL)
- Opslagprocedures voor replicatie (Transact-SQL)