sp_articlecolumn(Transact-SQL)

게시된 테이블의 데이터를 열 필터링하기 위해 아티클에 포함된 열을 지정하는 데 사용합니다. 이 저장 프로시저는 게시 데이터베이스의 게시자에서 실행됩니다.

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

구문

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' ]

인수

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

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

  • [ @column=] 'column'
    추가하거나 삭제할 열의 이름입니다. column은 sysname이며 기본값은 NULL입니다. NULL인 경우 모든 열이 게시됩니다.

  • [ @operation=] 'operation'
    아티클에서 열의 추가 또는 삭제 여부를 지정합니다. operation은 **nvarchar(5)**이며 기본값은 add입니다. add는 열을 복제용으로 표시합니다. drop은 열의 표시를 해제합니다.

  • [ @refresh_synctran_procs=] refresh_synctran_procs
    복제한 열 수와 일치하도록 즉시 업데이트 구독을 지원하는 저장 프로시저를 다시 생성할지 여부를 지정합니다. refresh_synctran_procs는 bit이며 기본값은 1입니다. 1인 경우 저장 프로시저를 다시 생성합니다.

  • [ @ignore_distributor =] ignore_distributor
    이 저장 프로시저가 배포자에 연결되지 않고 실행되는지 여부를 표시합니다. ignore_distributor는 bit이며 기본값은 0입니다. 0인 경우 게시에 데이터베이스를 사용할 수 있어야 하며 아티클이 복제한 새 열을 반영하기 위해 아티클 캐시를 새로 고쳐야 합니다. 1인 경우 게시되지 않은 데이터베이스에 있는 아티클에 대해 아티클 열을 삭제할 수 있으며 반드시 복구 상황에서만 사용해야 합니다.

  • [ @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를 사용하면 안 됩니다.

  • [ @internal= ] 'internal'
    내부적으로만 사용됩니다.

반환 코드 값

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

주의

sp_articlecolumn은 스냅숏 복제 및 트랜잭션 복제에 사용합니다.

구독되지 않은 아티클만 sp_articlecolumn으로 필터링할 수 있습니다.

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_articlecolumn을 실행할 수 있습니다.