sp_changearticle(Transact-SQL)

업데이트: 2006년 4월 14일

트랜잭션 또는 스냅숏 게시에 있는 아티클의 속성을 변경합니다. 이 저장 프로시저는 게시 데이터베이스의 게시자에서 실행됩니다.

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

구문

sp_changearticle [ [@publication= ] 'publication' ]
    [ , [ @article= ] 'article' ]
    [ , [ @property= ] 'property' ]
    [ , [ @value= ] 'value' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
    [ , [ @publisher = ] 'publisher' ]

인수

  • [ @publication = ] 'publication'
    아티클을 포함한 게시의 이름입니다. publicationsysname이며 기본값은 NULL입니다.
  • [ @article=] 'article'
    속성을 변경할 아티클의 이름입니다. articlesysname이며 기본값은 NULL입니다.
  • [ @property=] 'property'
    변경할 아티클 속성입니다. property는 **nvarchar(100)**입니다.
  • [ @value=] 'value'
    아티클 속성의 새 값입니다. value는 **nvarchar(255)**입니다.

    다음 표에서는 아티클의 유효한 속성 및 해당 속성의 값을 보여 줍니다.

    속성

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

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

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

    변경 시 새 스냅숏의 생성을 필요로 하는 속성에 대해서는 주의 섹션을 참조하십시오.

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

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

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

    변경 시 기존의 모든 구독을 다시 초기화해야 하는 속성에 대해서는 주의 섹션을 참조하십시오.

  • [ @publisher = ] 'publisher'
    비-SQL Server(Non-SQL Server) 게시자를 지정합니다. publishersysname이며 기본값은 NULL입니다.

    [!참고] SQL Server 게시자에 대한 아티클 속성을 변경할 때는 publisher를 사용하면 안 됩니다.

반환 코드 값

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

주의

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

아티클이 피어 투 피어 복제를 지원하는 게시에 속하는 경우에는 description, ins_cmd, upd_cmddel_cmd 속성만 변경할 수 있습니다.

다음 속성을 변경하려면 새 스냅숏을 생성해야 하며 force_invalidate_snapshot 매개 변수 값으로 1을 지정해야 합니다.

  • del_cmd
  • dest_table
  • destination_owner
  • ins_cmd
  • pre_creation_cmd
  • schema_options
  • upd_cmd

다음 속성을 변경하려면 기존 구독을 다시 초기화해야 하며 force_reinit_subscription 매개 변수 값으로 1을 지정해야 합니다.

  • del_cmd
  • dest_table
  • destination_owner
  • filter
  • ins_cmd
  • status
  • upd_cmd

전체 게시를 삭제하고 다시 만들 필요 없이 기존 게시 내에서 sp_changearticle을 사용하여 아티클을 변경할 수 있습니다.

[!참고] schema_option 값을 변경할 때 비트 단위 업데이트를 시스템에서 수행하지는 않습니다. 이는 sp_changearticle을 사용하여 schema_option을 설정할 때 기존의 비트 설정이 해제될 수 있음을 의미합니다. 기존 설정을 유지하려면 설정하려는 값과 sp_helparticle을 실행하여 얻는 schema_option의 현재 값 간에 &(비트 AND)를 수행해야 합니다.

유효한 스키마 옵션

다음 표에서는 복제 유형(오른쪽 두 행에 표시됨)과 아티클 유형(첫 번째 열에 표시됨)에 기반하여 schema_option의 사용 가능한 값을 설명합니다.

아티클 유형 복제 유형  

 

트랜잭션

스냅숏

logbased

모든 옵션

0x02를 제외한 모든 옵션

logbased manualfilter

모든 옵션

0x02를 제외한 모든 옵션

logbased manualview

모든 옵션

0x02를 제외한 모든 옵션

indexed view logbased

모든 옵션

0x02를 제외한 모든 옵션

indexed view logbased manualfilter

모든 옵션

0x02를 제외한 모든 옵션

indexed view logbased manualview

모든 옵션

0x02를 제외한 모든 옵션

indexed view logbase manualboth

모든 옵션

0x02를 제외한 모든 옵션

proc exec

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x400000000x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x400000000x80000000

serialized proc exec

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x400000000x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x400000000x80000000

proc schema only

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x400000000x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x400000000x80000000

view schema only

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x400000000x80000000

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x400000000x80000000

func schema only

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x400000000x80000000

0x01, 0x20, 0x2000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x10000000, 0x20000000, 0x400000000x80000000

indexed view schema only

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x400000000x80000000

0x01, 0x010, 0x020, 0x040, 0x0100, 0x2000, 0x40000, 0x100000, 0x200000, 0x400000, 0x800000, 0x2000000, 0x8000000, 0x400000000x80000000

[!참고] 지연 업데이트 게시의 경우 반드시 0x80schema_option 값을 사용해야 합니다. 비-SQL Server(Non-SQL Server) 게시에 대해 지원되는 schema_option 값은 0x01, 0x02, 0x10, 0x40, 0x80, 0x10000x4000입니다.

사용 권한

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

DECLARE @publication AS sysname;
DECLARE @article AS sysname;
DECLARE @option AS int;
SET @publication = N'AdvWorksProductTran';
SET @article = N'Product';
SET @option = (SELECT CAST(0x0000000002030073 AS int));

-- Change the schema options to replicate schema with XML.
USE [AdventureWorks]
EXEC sp_changearticle 
  @publication = @publication,
  @article = @article, 
  @property = N'schema_option', 
  @value = @option,
  @force_invalidate_snapshot = 1;
GO

참고 항목

참조

sp_addarticle(Transact-SQL)
sp_articlecolumn(Transact-SQL)
sp_droparticle(Transact-SQL)
sp_helparticle(Transact-SQL)
sp_helparticlecolumns(Transact-SQL)

관련 자료

How to: View and Modify Article Properties (Replication Transact-SQL Programming)
게시 및 아티클 속성 변경

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2006년 4월 14일

변경된 내용
  • schema_option 속성의 0x20000000 값에 대한 설명을 업데이트했습니다.

2005년 12월 5일

새로운 내용
  • type 속성에 대한 누락된 값을 추가했습니다.
  • schema_option 매개 변수에 대해 0x20 옵션을 설정할 때의 제한 사항을 추가했습니다.
변경된 내용
  • type 속성에 대한 자세한 설명을 추가했습니다.
  • property 매개 변수의 크기를 수정했습니다.