트랜잭션 아티클의 데이터 변경 내용을 전파하는 방법 설정Set the Propagation Method for Data Changes to Transactional Articles

이 항목에서는 SQL Server 2017SQL Server 2017 또는 SQL Server Management StudioSQL Server Management Studio 을 사용하여 Transact-SQLTransact-SQL에서 트랜잭션 아티클의 데이터 변경 내용을 전파하는 방법을 설정하는 방법에 대해 설명합니다.This topic describes how to set the propagation method for data changes to transactional articles in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

기본적으로 트랜잭션 복제는 각 아티클에 대한 저장 프로시저 집합을 사용하여 변경 내용을 구독자에 전파합니다.By default, transactional replication propagates changes to Subscribers using a set of stored procedures for each article. 이 프로시저는 사용자 지정 프로시저로 대체할 수 있습니다.You can replace these procedures with custom procedures. 자세한 내용은 트랜잭션 아티클에 대한 변경 내용을 전파하는 방법 지정을 참조하세요.For more information, see Specify How Changes Are Propagated for Transactional Articles.

항목 내용In This Topic

시작하기 전에Before You Begin

제한 사항 Limitations and Restrictions

  • 복제에서 생성된 스냅숏 파일을 편집할 때는 주의해야 합니다.Care must be taken when editing any of the snapshot files generated by replication. 사용자 지정 저장 프로시저의 사용자 지정 논리를 테스트하고 지원해야 합니다.You must test and support custom logic in the custom stored procedures. MicrosoftMicrosoft 에서는 사용자 지정 논리에 대한 지원을 제공하지 않습니다. does not provide support for custom logic.

SQL Server Management Studio 사용 Using SQL Server Management Studio

새 게시 마법사와 게시 속성 - <게시> 대화 상자에서 사용 가능한 아티클 속성 - <Article> 대화 상자의 속성 탭에서 전파 방법을 지정합니다.Specify the propagation method on the Properties tab of the Article Properties - <Article> dialog box, which is available in the New Publication Wizard and the Publication Properties - <Publication> dialog box. 마법사 사용 및 대화 상자 액세스에 대한 자세한 내용은 게시 만들기게시 속성 보기 및 수정을 참조하세요.For more information about using the wizard and accessing the dialog box, see Create a Publication and View and Modify Publication Properties.

전파 방법을 지정하려면To specify the propagation method

  1. 새 게시 마법사의 아티클 페이지 또는 게시 속성 - <게시> 대화 상자에서 테이블을 선택하고 아티클 속성을 클릭합니다.On the Articles page of the New Publication Wizard or the Publication Properties - <Publication> dialog box, select a table, and then click Article Properties.

  2. 선택한 테이블 아티클 속성 설정을 클릭합니다.Click Set Properties of Highlighted Table Article.

  3. 아티클 속성 - <Article> 대화 상자의 속성 탭에 있는 문 배달 섹션에서 INSERT 배달 형식, UPDATE 배달 형식DELETE 배달 형식 메뉴를 사용하여 각 작업의 전파 방법을 지정합니다.On the Properties tab of the Article Properties - <Article> dialog box, in the Statement Delivery section, specify the propagation method for each operation using the INSERT delivery format, UPDATE delivery format, and DELETE delivery format menus.

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

  5. 게시 속성 - <게시> 대화 상자에 있는 경우 확인을 클릭하여 대화 상자를 저장하고 닫습니다.If you are in the Publication Properties - <Publication> dialog box, click OK to save and close the dialog box.

사용자 지정 저장 프로시저를 생성하여 사용하려면To generate and use custom stored procedures

  1. 새 게시 마법사의 아티클 페이지 또는 게시 속성 - <게시> 대화 상자에서 테이블을 선택하고 아티클 속성을 클릭합니다.On the Articles page of the New Publication Wizard or the Publication Properties - <Publication> dialog box, select a table, and then click Article Properties.

  2. 선택한 테이블 아티클 속성 설정을 클릭합니다.Click Set Properties of Highlighted Table Article.

    아티클 속성 - <Article> 대화 상자의 속성 탭에 있는 문 배달 섹션의 해당 배달 형식 메뉴(INSERT 배달 형식, UPDATE 배달 형식 또는 DELETE 배달 형식)에서 CALL 구문을 선택한 다음 INSERT 저장 프로시저, DELETE 저장 프로시저 또는 UPDATE 저장 프로시저에 사용할 프로시저 이름을 입력합니다.On the Properties tab of the Article Properties - <Article> dialog box, in the Statement Delivery section, select the CALL syntax from the appropriate delivery format menu (INSERT delivery format, UPDATE delivery format, or DELETE delivery format), and then type the name of the procedure to use in INSERT stored procedure, DELETE stored procedure, or UPDATE stored procedure. CALL 구문에 대한 자세한 내용은 트랜잭션 아티클에 대한 변경 내용을 전파하는 방법 지정에서 "저장 프로시저 호출 구문" 섹션을 참조하세요.For more information about CALL syntax, see the section "Call syntax for stored procedures" in Specify How Changes Are Propagated for Transactional Articles.

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

  4. 게시 속성 - <게시> 대화 상자에 있는 경우 확인을 클릭하여 대화 상자를 저장하고 닫습니다.If you are in the Publication Properties - <Publication> dialog box, click OK to save and close the dialog box.

  5. 게시에 대한 스냅숏이 생성되면 이전 단계에서 지정한 프로시저가 포함됩니다.When the snapshot for the publication is generated, it will include the procedure you specified in the previous step. 이 프로시저는 지정한 CALL 구문을 사용하지만 복제에 사용되는 기본 논리를 포함합니다.The procedures will use the CALL syntax you specified, but will include the default logic that replication uses.

    스냅숏이 생성된 후 이 아티클이 속해 있는 게시의 스냅숏 폴더로 이동하여 아티클과 동일한 이름을 가진 .sch 파일을 찾습니다.After the snapshot has been generated, navigate to the snapshot folder for the publication to which this article belongs and locate the .sch file with the same name as the article. 메모장이나 다른 텍스트 편집기를 사용하여 이 파일을 열고 삽입, 업데이트 또는 삭제 저장 프로시저에 대한 CREATE PROCEDURE 명령을 찾은 후 프로시저 정의를 편집하여 데이터 변경 내용 전파에 대한 사용자 지정 논리를 제공합니다.Open this file using Notepad or another text editor, locate the CREATE PROCEDURE command for the insert, update, or delete stored procedures, and edit the procedure definition to supply any custom logic for propagating data changes. 스냅숏이 다시 생성되면 사용자 지정 프로시저를 다시 만들어야 합니다.If the snapshot is regenerated, you must re-create the custom procedure.

Transact-SQL 사용 Using Transact-SQL

트랜잭션 복제를 사용하면 게시자에서 구독자로 변경 내용을 전파하는 방법을 제어할 수 있습니다. 이 전파 방법은 아티클을 만들 때 프로그래밍 방식으로 설정될 수 있으며 나중에 복제 저장 프로시저에서 변경할 수도 있습니다.Transactional replication enables you to control how changes are propagated from the Publisher to Subscribers, and this propagation method can be set programmatically when an article is created and changed later using replication stored procedures.

참고

게시된 데이터 행에서 수행되는 각 DML(데이터 조작 언어) 작업 유형(삽입, 업데이트 또는 삭제)에 따라 다른 전파 방법을 지정할 수 있습니다.You can specify a different propagation method for each type of DML (data manipulation language) operation (insert, update, or delete) that occurs on a row of a published data.

자세한 내용은 트랜잭션 아티클에 대한 변경 내용을 전파하는 방법 지정을 참조하세요.For more information, see Specify How Changes Are Propagated for Transactional Articles.

Transact-SQL 명령을 사용하여 데이터 변경 내용을 전파하는 아티클을 만들려면To create an article that uses Transact-SQL commands to propagate data changes

  1. 게시 데이터베이스의 게시자에서 sp_addarticle을 실행합니다.At the Publisher on the publication database, execute sp_addarticle. @publication에 아티클이 속한 게시 이름, @article에 아티클 이름, @source_object에 게시할 데이터베이스 개체를 지정하고 다음 매개 변수 중 하나 이상에 SQL 값을 지정합니다.Specify the name of the publication to which the article belongs for @publication, a name for the article for @article, the database object being published for @source_object, and a value of SQL for at least one of the following parameters:

    • @ins_cmd - INSERT 명령의 복제를 제어합니다.@ins_cmd - controls the replication of INSERT commands.

    • @upd_cmd - UPDATE 명령의 복제를 제어합니다.@upd_cmd - controls the replication of UPDATE commands.

    • @del_cmd - DELETE 명령의 복제를 제어합니다.@del_cmd - controls the replication of DELETE commands.

    참고

    위 매개 변수 중 하나에 SQL 값을 지정하면 해당 유형의 명령이 적절한 Transact-SQLTransact-SQL 명령으로 구독자에 복제됩니다.When specifying a value of SQL for any of the above parameters, commands of that type will be replicated to the Subscriber as the appropriate Transact-SQLTransact-SQL command.

    자세한 내용은 Define an Article을 참조하세요.For more information, see Define an Article.

데이터 변경 내용을 전파하지 않는 아티클을 만들려면To create an article that does not propagate data changes

  1. 게시 데이터베이스의 게시자에서 sp_addarticle을 실행합니다.At the Publisher on the publication database, execute sp_addarticle. @publication에 아티클이 속한 게시 이름, @article에 아티클 이름, @source_object에 게시할 데이터베이스 개체를 지정하고 다음 매개 변수 중 하나 이상에 NONE 값을 지정합니다.Specify the name of the publication to which the article belongs for @publication, a name for the article for @article, the database object being published for @source_object, and a value of NONE for at least one of the following parameters:

    • @ins_cmd - INSERT 명령의 복제를 제어합니다.@ins_cmd - controls the replication of INSERT commands.

    • @upd_cmd - UPDATE 명령의 복제를 제어합니다.@upd_cmd - controls the replication of UPDATE commands.

    • @del_cmd - DELETE 명령의 복제를 제어합니다.@del_cmd - controls the replication of DELETE commands.

    참고

    위 매개 변수 중 하나에 NONE 값을 지정하면 해당 유형의 명령이 구독자에 복제되지 않습니다.When specifying a value of NONE for any of the above parameters, commands of that type will not be replicated to the Subscriber.

    자세한 내용은 Define an Article을 참조하세요.For more information, see Define an Article.

사용자가 수정한 사용자 지정 저장 프로시저를 포함하는 아티클을 만들려면To create an article with user-modified custom stored procedures

  1. 게시 데이터베이스의 게시자에서 sp_addarticle을 실행합니다.At the Publisher on the publication database, execute sp_addarticle. @publication에 아티클이 속한 게시 이름, @article에 아티클 이름, @source_object에 게시할 데이터베이스 개체, 0x02 값(사용자 지정 저장 프로시저의 자동 생성 설정)을 포함하는 @schema_option 비트마스크에 값을 지정하고 다음 매개 변수 중 하나 이상을 지정합니다.Specify the name of the publication to which the article belongs for @publication, a name for the article for @article, the database object being published for @source_object, a value for the @schema_option bitmask that contains the value 0x02 (enables automatic generation of custom stored procedures), and at least one of the following parameters:

    • @ins_cmd - CALL sp_MSins_*article_name* 값을 지정합니다. 여기서 article_name@article에 지정된 값입니다.@ins_cmd - specify a value of CALL sp_MSins_*article_name, where ***article_name** is the value specified for @article.

    • @del_cmd - CALL sp_MSdel_*article_name* 또는 XCALL sp_MSdel_*article_name* 값을 지정합니다. 여기서 article_name@article에 지정된 값입니다.@del_cmd - specify a value of CALL sp_MSdel_*article_name* or XCALL sp_MSdel_*article_name, where ***article_name** is the value specified for @article.

    • @upd_cmd - SCALL sp_MSupd_*article_name, **CALL sp_MSupd_article_name, *XCALL sp_MSupd_article_name *또는 **MCALL sp_MSupd_article_name* 값을 지정합니다. 여기서 article_name@article에 지정된 값입니다.@upd_cmd - specify a value of SCALL sp_MSupd_*article_name, **CALL sp_MSupd_article_name, *XCALL sp_MSupd_*article_name, or **MCALL sp_MSupd_article_name, where **article_name* is the value specified for @article.

    참고

    위 명령 매개 변수마다 복제 시 생성되는 저장 프로시저의 이름을 고유하게 지정할 수 있습니다.For each of the above command parameters, you can specify your own name for the stored procedures that replication generates.

    참고

    CALL, SCALL, XCALL 및 MCALL 구문에 대한 자세한 내용은 트랜잭션 아티클에 대한 변경 내용을 전파하는 방법 지정을 참조하세요.For more information on CALL, SCALL, XCALL, and MCALL syntax, see Specify How Changes Are Propagated for Transactional Articles.

    자세한 내용은 Define an Article을 참조하세요.For more information, see Define an Article.

  2. 스냅숏이 생성된 후 이 아티클이 속해 있는 게시의 스냅숏 폴더로 이동하여 아티클과 동일한 이름을 가진 .sch 파일을 찾습니다.After the snapshot has been generated, navigate to the snapshot folder for the publication to which this article belongs and locate the .sch file with the same name as the article. Notepad.exe를 사용하여 이 파일을 열고 삽입, 업데이트 또는 삭제 저장 프로시저에 대한 CREATE PROCEDURE 명령을 찾은 후 프로시저 정의를 편집하여 데이터 변경 내용 전파에 대한 사용자 지정 논리를 제공합니다.Open this file using Notepad.exe, locate the CREATE PROCEDURE command for the insert, update, or delete stored procedures, and edit the procedure definition to supply any custom logic for propagating data changes. 자세한 내용은 트랜잭션 아티클에 대한 변경 내용을 전파하는 방법 지정을 참조하세요.For more information, see Specify How Changes Are Propagated for Transactional Articles.

데이터 변경 내용을 전파하기 위해 사용자 지정 저장 프로시저의 사용자 지정 스크립팅을 포함하는 아티클을 만들려면To create an article with custom scripting in the custom stored procedures to propagate data changes

  1. 게시 데이터베이스의 게시자에서 sp_addarticle을 실행합니다.At the Publisher on the publication database, execute sp_addarticle. @publication에 아티클이 속한 게시 이름, @article에 아티클 이름, @source_object에 게시할 데이터베이스 개체, 0x02 값(사용자 지정 저장 프로시저의 자동 생성 설정)을 포함하는 @schema_option 비트마스크에 값을 지정하고 다음 매개 변수 중 하나 이상을 지정합니다.Specify the name of the publication to which the article belongs for @publication, a name for the article for @article, the database object being published for @source_object, a value for the @schema_option bitmask that contains the value 0x02 (enables automatic generation of custom stored procedures), and at least one of the following parameters:

    • @ins_cmd - CALL sp_MSins_*article_name* 값을 지정합니다. 여기서 article_name@article에 지정된 값입니다.@ins_cmd - specify a value of CALL sp_MSins_*article_name, where ***article_name** is the value specified for @article.

    • @del_cmd - CALL sp_MSdel_*article_name* 또는 XCALL sp_MSdel_*article_name* 값을 지정합니다. 여기서 article_name@article에 지정된 값입니다.@del_cmd - specify a value of CALL sp_MSdel_*article_name* or XCALL sp_MSdel_*article_name, where ***article_name** is the value specified for @article.

    • @upd_cmd - SCALL sp_MSupd_*article_name, **CALL sp_MSupd_article_name, *XCALL sp_MSupd_*article_name, **MCALL sp_MSupd_article_name*** 값을 지정합니다. 여기서 article_name@article에 지정된 값입니다.@upd_cmd - specify a value of SCALL sp_MSupd_*article_name, **CALL sp_MSupd_article_name, *XCALL sp_MSupd_*article_name, **MCALL sp_MSupd_article_name, where **article_name* is the value specified for @article.

    참고

    위 명령 매개 변수마다 복제 시 생성되는 저장 프로시저의 이름을 고유하게 지정할 수 있습니다.For each of the above command parameters, you can specify your own name for the stored procedures that replication generates.

    참고

    CALL, SCALL, XCALL 및 MCALL 구문에 대한 자세한 내용은 트랜잭션 아티클에 대한 변경 내용을 전파하는 방법 지정을 참조하세요.For more information on CALL, SCALL, XCALL, and MCALL syntax, see Specify How Changes Are Propagated for Transactional Articles.

    자세한 내용은 Define an Article을 참조하세요.For more information, see Define an Article.

  2. 게시 데이터베이스의 게시자에서 ALTER PROCEDURE 문을 사용하여 삽입, 업데이트 및 삭제 사용자 지정 저장 프로시저에 대한 CREATE PROCEDURE 스크립트를 반환하도록 sp_scriptpublicationcustomprocs 를 편집하면 합니다.At the Publisher on the publication database, use the ALTER PROCEDURE statement to edit sp_scriptpublicationcustomprocs so that it returns a CREATE PROCEDURE script for the insert, update, and delete custom stored procedures. 자세한 내용은 트랜잭션 아티클에 대한 변경 내용을 전파하는 방법 지정을 참조하세요.For more information, see Specify How Changes Are Propagated for Transactional Articles.

기존 아티클에 대한 변경 내용 전파 방법을 변경하려면To change the method of propagating changes for an existing article

  1. 게시 데이터베이스의 게시자에서 sp_changearticle을 실행합니다.At the Publisher on the publication database, execute sp_changearticle. @publication, @article, @propertyins_cmd, upd_cmd 또는 del_cmd 값, @value에 적절한 전파 방법을 지정합니다.Specify @publication, @article, a value of ins_cmd, upd_cmd, or del_cmd for @property, and the appropriate propagation method for @value.

  2. 변경하려는 각 전파 방법에 대해 1단계를 반복합니다.Repeat step 1 for each propagation method to be changed.

참고 항목See Also

트랜잭션 아티클에 대한 변경 내용을 전파하는 방법 지정 Specify How Changes Are Propagated for Transactional Articles
게시 및 아티클 만들기, 수정 및 삭제(복제) Create, Modify, and Delete Publications and Articles (Replication)