다음을 통해 공유


sp_articleview(Transact-SQL)

테이블을 수직 또는 수평으로 필터링할 때 게시된 아티클을 정의하는 뷰를 만듭니다. 이 뷰는 대상 테이블에 대한 스키마 및 데이터의 필터링된 원본으로 사용됩니다. 이 저장 프로시저로는 구독되지 않은 아티클만 수정할 수 있습니다. 이 저장 프로시저는 게시 데이터베이스의 게시자에서 실행됩니다.

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

구문

sp_articleview [ @publication = ] 'publication' 
        , [ @article = ] 'article'
    [ , [ @view_name = ] 'view_name']
    [ , [ @filter_clause = ] 'filter_clause']
    [ , [ @change_active = ] change_active ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
    [ , [ @publisher = ] 'publisher' ]
    [ , [ @refreshsynctranprocs = ] refreshsynctranprocs ]
    [ , [ @internal = ] internal ]

인수

  • [ @publication=] 'publication'
    아티클을 포함하는 게시의 이름입니다. publication는 sysname이며 기본값은 없습니다.

  • [ @article=] 'article'
    아티클의 이름입니다. article는 sysname이며 기본값은 없습니다.

  • [ @view_name=] 'view_name'
    게시된 아티클을 정의하는 뷰의 이름입니다. view_name은 **nvarchar(386)**이며 기본값은 NULL입니다.

  • [ @filter_clause=] 'filter_clause'
    행 필터를 정의하는 제한 (WHERE) 절입니다. 제약 조건 절을 입력할 때는 WHERE 키워드를 생략합니다. filter_clause는 ntext이며 기본값은 NULL입니다.

  • [ @change_active = ] change_active
    구독이 있는 게시에서 열을 수정할 수 있도록 허용합니다. change_active는 int이며 기본값은 0입니다. 0인 경우 열은 변경되지 않습니다. 1인 경우 구독이 있는 활성 아티클에서 뷰를 만들거나 다시 만들 수 있습니다.

  • [ @force_invalidate_snapshot = ] force_invalidate_snapshot
    이 저장 프로시저가 수행한 동작으로 인해 기존 스냅숏이 무효화될 수도 있습니다. force_invalidate_snapshot은 bit이며 기본값은 0입니다.

    0은 아티클에 대한 변경으로 인해 스냅숏이 무효화되지 않도록 지정합니다. 저장 프로시저가 새 스냅숏을 필요로 하는 변경을 감지하면 오류가 발생하며 변경이 수행되지 않습니다.

    1은 아티클의 변경이 스냅숏을 무효화함을 의미하며 기존 구독에서 새 스냅숏을 필요로 하는 경우 기존 스냅숏을 오래되어 사용하지 않음으로 표시하고 새 스냅숏을 생성할 권한을 부여합니다.

  • [ @force_reinit_subscription = ] force_reinit_subscription
    이 저장 프로시저가 수행한 동작으로 인해 기존 구독을 다시 초기화해야 할 수도 있습니다. force_reinit_subscription은 bit이며 기본값은 0입니다.

    0은 아티클에 대한 변경으로 인해 구독이 다시 초기화되지 않도록 지정합니다. 저장 프로시저가 구독의 다시 초기화를 필요로 하는 변경을 감지하면 오류가 발생하며 변경이 수행되지 않습니다.

    1은 아티클에 대한 변경으로 인해 기존 구독이 다시 초기화되도록 지정하며 구독을 다시 초기화할 수 있는 권한을 부여합니다.

  • [ @publisher= ] 'publisher'
    Microsoft SQL Server 이외의 게시자를 지정합니다. publisher는 sysname이며 기본값은 NULL입니다.

    [!참고]

    SQL Server 게시자에서 게시할 때는 publisher를 사용하면 안 됩니다.

  • [ @refreshsynctranprocs = ] refreshsynctranprocs
    복제를 동기화하는 데 사용된 저장 프로시저가 자동으로 다시 생성되는지 여부입니다. refreshsynctranprocs는 bit이며 기본값은 1입니다.

    1은 저장 프로시저가 다시 만들어졌음을 의미합니다.

    0은 저장 프로시저가 다시 만들어지지 않았음을 의미합니다.

  • [ @internal= ] internal
    정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

반환 코드 값

0(성공) 또는 1(실패)

주의

sp_articleview는 게시된 아티클을 정의하는 뷰를 만들고 sysarticles(Transact-SQL) 테이블에 있는 sync_objid 열에 이 뷰의 ID를 삽입하며 filter_clause 열에 제한 절의 텍스트를 삽입합니다. 모든 열이 복제되고 filter_clause 절이 없는 경우에는 sysarticles(Transact-SQL) 테이블의 sync_objid가 기준 테이블의 ID로 설정되며 sp_articleview를 사용할 필요가 없습니다.

수직 분할(열 필터링된) 테이블을 게시하려면 먼저 sync_object 매개 변수 없이 sp_addarticle을 실행한 다음 복제할 각 열에 대해 sp_articlecolumn(Transact-SQL)을 한 번씩 실행하고 sp_articleview를 실행하여 게시된 아티클을 정의하는 뷰를 만드십시오.

수평 분할(행 필터링된)된 테이블을 게시하려면 먼저 filter 매개 변수 없이 sp_addarticle(Transact-SQL)을 실행하십시오. filter_clause를 포함하여 모든 매개 변수를 지정하고 sp_articlefilter(Transact-SQL)를 실행하십시오. 그런 다음 동일한 filter_clause를 포함하여 모든 매개 변수를 지정하고 sp_articleview를 실행하십시오.

수직 및 수평 분할된 테이블을 게시하려면 sync_object 또는 filter 매개 변수 없이 sp_addarticle(Transact-SQL)을 실행하십시오. 복제된 각 열마다 한 번씩만 sp_articlecolumn(Transact-SQL)을 실행한 다음 sp_articlefilter(Transact-SQL)sp_articleview를 실행하십시오.

아티클에 이미 게시 아티클을 정의하는 뷰가 있는 경우에는 sp_articleview가 자동으로 기존 뷰를 삭제하고 새 뷰를 만듭니다. 수동으로 만든 뷰는(sysarticles(Transact-SQL)type5인 경우) 삭제되지 않습니다.

사용자 지정 필터 저장 프로시저와 게시 아티클을 수동으로 정의하는 뷰를 만든 경우 sp_articleview를 실행하지 마십시오. 대신 적절한 type 값과 함께 filtersync_object 매개 변수를 지정하고 sp_addarticle(Transact-SQL)를 실행하십시오.

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

사용 권한

sysadmin 고정 서버 역할의 멤버 또는 db_owner 고정 데이터베이스 역할의 멤버만 sp_articleview를 실행할 수 있습니다.

참고 항목

참조

sp_addarticle(Transact-SQL)

sp_articlefilter(Transact-SQL)

sp_changearticle(Transact-SQL)

sp_droparticle(Transact-SQL)

sp_helparticle(Transact-SQL)

복제 저장 프로시저(Transact-SQL)

개념

아티클 정의

정적 행 필터 정의 및 수정