sp_repladdcolumn(Transact-SQL)
게시된 기존 테이블 아티클에 열을 추가합니다. 이 테이블을 게시하는 모든 게시자에 새 열을 추가하거나 이 테이블을 게시하는 특정 게시에 열을 추가할 수 있습니다. 이 저장 프로시저는 게시 데이터베이스의 게시자에서 실행됩니다.
중요 |
---|
이 저장 프로시저는 더 이상 사용되지 않지만 주로 이전 버전과의 호환성을 위해 지원됩니다. MicrosoftSQL Server 2000 게시자 및 SQL Server 2000 재게시 구독자에서만 사용해야 합니다. SQL Server 2005 또는 SQL Server 2008에서 도입된 데이터 형식을 사용하는 열에는 이 절차를 사용하지 않아야 합니다. |
구문
sp_repladdcolumn [ @source_object = ] 'source_object', [ @column = ] 'column' ]
[ , [ @typetext = ] 'typetext' ]
[ , [ @publication_to_add = ] 'publication_to_add' ]
[ , [ @from_agent = ] from_agent ]
[ , [ @schema_change_script = ] 'schema_change_script' ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
인수
[ @source\_object =] 'source_object'
추가할 새 열을 포함하는 테이블 아티클의 이름입니다. source_object는 nvarchar(358)이며 기본값은 없습니다.[ @column =] 'column'
복제용으로 추가될 테이블에 있는 열의 이름입니다. column은 sysname이며 기본값은 없습니다.[ @typetext =] 'typetext'
추가되는 열의 정의입니다. typetext는 nvarchar(3000)이며 기본값은 없습니다. 예를 들어 NULL이 아니고 단일 문자 필드이며 기본값이 N인 order_filled 열을 추가하는 경우 order_filled는 column 매개 변수가 되며 열 정의 char(1) NOT NULL CONSTRAINT constraint_name DEFAULT 'N'은 typetext 매개 변수 값이 됩니다.[ @publication\_to\_add =] 'publication_to_add'
새 열을 추가할 게시의 이름입니다. publication_to_add는 nvarchar(4000)이며 기본값은 ALL입니다. ALL은 이 테이블이 포함된 모든 게시에 영향을 줍니다. publication_to_add를 지정한 경우에는 이 게시에만 새 열이 추가됩니다.[ @from\_agent = ] from_agent
복제 에이전트에서 저장 프로시저를 실행하는 경우 from_agent는 int이며 기본값은 0입니다. 여기서 값 1은 복제 에이전트가 이 저장 프로시저를 실행할 때 사용되며 다른 모든 경우에는 기본값 0을 사용해야 합니다.[ @schema\_change\_script =] 'schema_change_script'
시스템 생성 사용자 지정 저장 프로시저를 수정하는 데 사용된 SQL Server 스크립트의 이름과 경로를 지정합니다. schema_change_script는 nvarchar(4000)이며 기본값은 NULL입니다. 복제를 사용하면 사용자가 정의한 사용자 지정 저장 프로시저가 트랜잭션 복제에 사용된 기본 프로시저 중 한 개 이상을 바꿀 수 있습니다. schema_change_script는 sp_repladdcolumn을 사용하여 복제된 테이블의 스키마가 변경된 후 실행되며 다음 중 하나를 수행하는 데 사용할 수 있습니다.사용자 지정 저장 프로시저가 자동으로 다시 생성되면 schema_change_script를 사용하여 이러한 사용자 지정 저장 프로시저를 삭제한 후 새 스키마를 지원하는 사용자 정의 사용자 지정 저장 프로시저로 바꿀 수 있습니다.
사용자 지정 저장 프로시저가 자동으로 다시 생성되지 않으면 schema_change_script를 사용하여 이러한 저장 프로시저를 다시 생성하거나 사용자 정의 사용자 지정 저장 프로시저를 만들 수 있습니다.
[ @force\_invalidate\_snapshot = ] force_invalidate_snapshot
스냅숏 무효화 기능을 설정하거나 해제합니다. force_invalidate_snapshot은 bit이며 기본값은 1입니다.1은 아티클에 대한 변경으로 인해 스냅숏이 무효화되도록 지정합니다. 또한 해당되는 경우에 한해 1은 새 스냅숏을 생성할 수 있도록 권한을 부여합니다.
0은 아티클에 대한 변경으로 인해 스냅숏이 무효화되지 않도록 지정합니다.
[ @force\_reinit\_subscription = ] force_reinit_subscription
구독 재초기화 기능을 설정하거나 해제합니다. force_reinit_subscription은 bit이며 기본값은 0입니다.0은 아티클에 대한 변경으로 인해 구독이 다시 초기화되지 않도록 지정합니다.
1은 아티클이 변경되는 경우 구독이 다시 초기화되도록 지정합니다. 이 경우 1은 구독을 다시 초기화할 수 있는 권한을 부여합니다.
반환 코드 값
0(성공) 또는 1(실패)
주의
sp_repladdcolumn은 더 이상 사용되지 않지만 이전 버전과의 호환성을 위해 지원됩니다. 게시된 테이블에 대해 DDL(데이터 정의 언어) 명령을 실행해야 복제된 테이블 아티클에 열을 추가할 수 있습니다. DDL 복제가 설정되어 있는 동안 복제는 이러한 DDL 명령을 자동으로 복제합니다. 자세한 내용은 게시 데이터베이스의 스키마 변경를 참조하십시오.
이전 버전의 SQL Server 2000 구독자에서 실행되는 재게시 구독자의 DLL 변경 내용을 전파할 때에도 sp_repladdcolumn이 필요합니다.
sp_repladdcolumn은 모든 유형의 복제에 사용됩니다.
sp_repladdcolumn을 사용할 때 DTS(데이터 변환 서비스) 패키지를 사용하는 게시의 아티클에서 스키마가 변경되면 이 스키마의 변경 내용이 구독자로 전파되지 않으며 INSERT/UPDATE/DELETE에 대한 사용자 지정 프로시저가 구독자에 다시 생성되지 않습니다. 사용자는 DTS 패키지를 수동으로 다시 생성해야 하며 구독자에서 해당 스키마를 변경해야 합니다. 스키마 업데이트가 적용되지 않으면 배포 에이전트가 다음 수정 내용을 적용하지 못할 수 있습니다. 스키마를 변경하기 전에 배달할 보류 중인 트랜잭션이 있는지 확인해야 합니다.
typetext에 비결정적 함수(예 'datetime not null default getdate()')인 기본값이 할당되면 이 함수는 기본값을 열에 로드하기 위해 구독자에서 실행되므로 새 열을 추가한 후 데이터 불일치가 발생할 수 있습니다.
타임스탬프 및 계산 열은 문자 모드 게시에 대해 필터링됩니다. sp_repladdcolumn을 사용하여 타임스탬프 또는 계산 열을 추가하는 경우에는 해당 게시의 구독이 새 열을 받지 않습니다.
중요 |
---|
게시 데이터베이스의 백업은 sp_repladdcolumn을 실행한 후 수행해야 합니다. 그렇게 하지 않으면 게시 데이터베이스 복원 후 병합이 실패할 수도 있습니다. |
사용 권한
sysadmin 고정 서버 역할의 멤버 및 db_owner 고정 데이터베이스 역할의 멤버만 sp_repladdcolumn를 실행할 수 있습니다.