스키마 변경 내용 복제Replicate Schema Changes

이 항목에서는 SQL Server 2017SQL Server 2017 또는 SQL Server Management StudioSQL Server Management Studio 을 사용하여 Transact-SQLTransact-SQL에서 스키마 변경 내용을 복제하는 방법에 대해 설명합니다.This topic describes how to replicate schema changes in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

게시된 아티클에서 다음 스키마를 변경하면 기본적으로 MicrosoftMicrosoft SQL ServerSQL Server 구독자에 변경 내용이 전파됩니다.If you make the following schema changes to a published article, they are propagated, by default, to MicrosoftMicrosoft SQL ServerSQL Server Subscribers:

시작하기 전 주의 사항 Before You Begin

제한 사항 Limitations and Restrictions

  • ALTER TABLE …The ALTER TABLE … DROP COLUMN 문은 스키마 변경 내용 복제를 해제한 경우에도 항상 삭제된 열이 있는 구독이 포함된 모든 구독자에 복제됩니다.DROP COLUMN statement is always replicated to all Subscribers whose subscription contains the columns being dropped, even if you disable the replication of schema changes.

SQL Server Management Studio 사용 Using SQL Server Management Studio

게시에 대한 스키마 변경 내용을 복제하지 않으려면 게시 속성 - <Publication> 대화 상자에서 스키마 변경 내용 복제를 해제합니다.If you do not want to replicate schema changes for a publication, disable the replication of schema changes in the Publication Properties - <Publication> dialog box. 이 대화 상자에 액세스하는 방법은 View and Modify Publication Properties을 참조하세요.For more information about accessing this dialog box, see View and Modify Publication Properties.

스키마 변경 내용 복제를 해제하려면To disable replication of schema changes

  1. 게시 속성 - <Publication> 대화 상자의 구독 옵션 페이지에서 스키마 변경 내용 복제 속성의 값을 False로 설정합니다.On the Subscription Options page of the Publication Properties - <Publication> dialog box, set the value of the Replicate schema changes property to False.

  2. 확인을 클릭합니다.Click OK.

    특정 스키마 변경 내용만 전파하려면 스키마를 변경하기 전에 해당 속성을 True 로 설정한 다음 스키마 변경 후 False 로 설정합니다.To propagate only specific schema changes, set the property to True before a schema change, and then set it to False after the change is made. 반대로 지정된 변경 내용을 제외한 대부분의 스키마 변경 내용을 전파하려면 스키마를 변경하기 전에 해당 속성을 False 로 설정한 다음 스키마 변경 후 True 로 설정합니다.Conversely, to propagate most schema changes, but not a given change, set the property to False before the schema change, and then set it to True after the change is made.

Transact-SQL 사용 Using Transact-SQL

복제 저장 프로시저를 사용하여 이러한 스키마 변경 내용을 복제할지 여부를 지정할 수 있습니다.You can use replication stored procedures to specify whether these schema changes are replicated. 사용하는 저장 프로시저는 게시 유형에 따라 달라집니다.The stored procedure that you use depends on the type of publication.

스키마 변경 내용을 복제하지 않는 스냅숏 또는 트랜잭션 게시를 만들려면To create a snapshot or transactional publication that does not replicate schema changes

  1. 게시 데이터베이스의 게시자에서 @replicate_ddl0 값을 지정하여 sp_addpublication(Transact-SQL)을 실행합니다.At the Publisher on the publication database, execute sp_addpublication (Transact-SQL), specifying a value of 0 for @replicate_ddl. 자세한 내용은 Create a Publication을 참조하세요.For more information, see Create a Publication.

스키마 변경 내용을 복제하지 않는 병합 게시를 만들려면To create a merge publication that does not replicate schema changes

  1. 게시 데이터베이스의 게시자에서 @replicate_ddl0 값을 지정하여 sp_addmergepublication(Transact-SQL)을 실행합니다.At the Publisher on the publication database, execute sp_addmergepublication (Transact-SQL), specifying a value of 0 for @replicate_ddl. 자세한 내용은 Create a Publication을 참조하세요.For more information, see Create a Publication.

스냅숏 또는 트랜잭션 게시에 대해 스키마 변경 내용 복제를 일시적으로 해제하려면To temporarily disable replicating schema changes for a snapshot or transactional publication

  1. 스키마 변경 내용을 복제하는 게시에서 @propertyreplicate_ddl 값, @value0 값을 지정하여 sp_changepublication(Transact-SQL)을 실행합니다.For a publication with replication of schema changes, execute sp_changepublication (Transact-SQL), specifying a value of replicate_ddl for @property and a value of 0 for @value.

  2. 게시된 개체에서 DDL 명령을 실행합니다.Execute the DDL command on the published object.

  3. (옵션) @propertyreplicate_ddl 값, @value1 값을 지정하여 sp_changepublication(Transact-SQL)을 실행하면 스키마 변경 내용 복제가 다시 설정됩니다.(Optional) Re-enable replicating schema changes by executing sp_changepublication (Transact-SQL), specifying a value of replicate_ddl for @property and a value of 1 for @value.

병합 게시에 대한 스키마 변경 내용 복제를 일시적으로 해제하려면To temporarily disable replicating schema changes for a merge publication

  1. 스키마 변경 내용을 복제하는 게시의 경우 @propertyreplicate_ddl 값, @value0 값을 지정하여 sp_changemergepublication(Transact-SQL)을 실행합니다.For a publication with replication of schema changes, execute sp_changemergepublication (Transact-SQL), specifying a value of replicate_ddl for @property and a value of 0 for @value.

  2. 게시된 개체에서 DDL 명령을 실행합니다.Execute the DDL command on the published object.

  3. (옵션) @propertyreplicate_ddl 값, @value1 값을 지정하여 sp_changemergepublication(Transact-SQL)을 실행하면 스키마 변경 내용 복제가 다시 설정됩니다.(Optional) Re-enable replicating schema changes by executing sp_changemergepublication (Transact-SQL), specifying a value of replicate_ddl for @property and a value of 1 for @value.

관련 항목:See Also

게시 데이터베이스의 스키마 변경 Make Schema Changes on Publication Databases
게시 데이터베이스의 스키마 변경 Make Schema Changes on Publication Databases