Aracılığıyla paylaş


sp_articlefilter (Transact-sql)

Yayımlanan filtreler veri bir tablo makale dayalı. Bu saklı yordam, yayını veritabanı üzerinde yayımcı adresindeki yürütülür.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

sp_articlefilter [ @publication = ] 'publication'
        , [ @article = ] 'article'
    [ , [ @filter_name = ] 'filter_name' ]
    [ , [ @filter_clause = ] 'filter_clause' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
    [ , [ @publisher = ] 'publisher' ]

Bağımsız değişkenler

  • @ publication ='publication'
    Makaleyi içeren Yayını addır. publicationise sysname, hiçbir varsayılan ile.

  • @article='article'
    Makaleyi addır. articleise sysname, hiçbir varsayılan ile.

  • @ Filtre_adı ='Filtre_adı'
    Dan oluşturulacak filtre depolanan yordamı adı filter_name. filter_nameise nvarchar(386), null varsayılan. Makale filtre için benzersiz bir ad belirtmeniz gerekir.

  • @ filter_clause ='filter_clause'
    Bir kısıtlama yatay bir filtre tanımlar (nerede) yan tümcesi. Kısıtlama yan tümcesi girerken, anahtar sözcüğünü atlarsanız burada. filter_clauseise ntext, null varsayılan.

  • @ force_invalidate_snapshot = force_invalidate_snapshot
    Bu saklı yordam tarafından gerçekleştirilen eylemi varolan bir anlık görüntüsünü geçersiz kılabilir kabul eder. force_invalidate_snapshotolan bir bit, varsayılan 0.

    0 makaleyi değişiklikleri anlık geçersiz neden olmaz belirtir. Saklı yordam değiştirmek yeni bir anlık görüntü gerektirecek algılarsa, bir hata oluşur ve değişiklik yapılmaz.

    1 makaleyi değişiklikleri anlık geçersiz neden olabilir ve yeni bir anlık görüntü gerektirecek varolan abonelikleri varsa varolan anlık görüntü geçersiz olarak işaretlenmesi için izni verir ve yeni bir anlık görüntü oluşturulan belirtir.

  • @ force_reinit_subscription = force_reinit_subscription
    Bu saklı yordam tarafından gerçekleştirilen eylemi varolan abonelikleri yeniden gerektirdiğine dikkat eder. force_reinit_subscriptionolan bir bit, varsayılan 0.

    0 makaleyi değişiklikleri bir ihtiyaç için abonelikleri yeniden neden olmaz belirtir. Saklı yordam yeniden abonelikleri değişikliği gerektirecek algılarsa, bir hata oluşur ve değişiklik yapılmaz.

    1 değişiklikleri makale yeniden, varolan abonelikleri neden belirtir ve abonelik reinitialization yapılmasına izin verir.

  • @publisher='publisher'
    Olmayan bir belirtir- Microsoft   SQL Server Yayınevi. publisherise sysname, null varsayılan.

    [!NOT]

    publisherile kullanılmamalıdır bir SQL ServerYayınevi.

Dönüş Kodu Değerleri

0 (başarılı) veya 1 (hata)

Açıklamalar

sp_articlefilter anlık görüntü çoğaltma ve işlem çoğaltma kullanılır.

Yürütme sp_articlefilter için varolan abonelikleri içeren bir makale gerektiren bu abonelikleri yeniden.

sp_articlefilter filtreyi oluşturur, filtre depolanan yordamı Kımlığı ekler filtre sütununda sysarticles (Transact-sql)tablo ve kısıtlama yan tümcesi metnini ekler filter_clause sütun.

Bir makale ile yatay bir filtre oluşturmak için yürütme eşdeğerdirsp_addarticle (Transact-sql)no ile filterparametresi. Yürütme sp_articlefilter, dahil tüm parametreleri sağlayan filter_clauseve daha sonra idam sp_articleview (Transact-sql), aynı dahil tüm parametreleri sağlayan filter_clause. Filtre zaten ve eğer türü içinde sysarticles olan 1 (günlük tabanlı makale), önceki süzgeç silinir ve yeni bir filtre oluşturulur.

Eğer filter_nameve filter_clausedeğil önceki süzgeç silinir ve filtre kimliğini ayarlamak sağlanan 0.

Örnek

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

İzinler

Yalnızca üyeleri sysadmin sabit sunucu rolü veya db_owner sabit veritabanı rolü yürütebilirsiniz sp_articlefilter.

Ayrıca bkz.

Başvuru

eşdeğerdirsp_addarticle (Transact-sql)

sp_articleview (Transact-sql)

veyasp_changearticle (Transact-sql)

sp_droparticle (Transact-sql)

eşdeğerdirsp_helparticle (Transact-sql)

Çoğaltma depolanan yordamlar (Transact-sql)

Kavramlar

Bir makale tanımlamak

Tanımla ve statik satır filtre Değiştir