아티클 속성 보기 및 수정View and Modify Article Properties

이 항목 적용 대상: 예SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse 이 항목에서는 SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL 또는 RMO(복제 관리 개체)를 사용하여 SQL Server 2017SQL Server 2017에서 아티클 속성을 보고 수정하는 방법에 대해 설명합니다. This topic describes how to view and modify article properties in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or Replication Management Objects (RMO).

항목 내용In This Topic

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

제한 사항Limitations and Restrictions

  • 게시를 만든 다음 일부 속성은 수정할 수 없고, 게시에 대한 구독이 있는 경우에 수정할 수 없는 속성도 있습니다.Some properties cannot be modified after a publication has been created, and others cannot be modified if there are subscriptions to the publication. 수정할 수 없는 속성은 읽기 전용으로 표시됩니다.Properties that cannot be modified are displayed as read-only.

권장 사항Recommendations

SQL Server Management Studio 사용Using SQL Server Management Studio

MicrosoftMicrosoft SQL Server Management StudioSQL Server Management Studio 및 복제 모니터에서 사용할 수 있는 게시 속성 - <게시> 대화 상자에서 아티클 속성을 보고 수정합니다.View and modify article properties in the Publication Properties - <Publication> dialog box, which is available in MicrosoftMicrosoft SQL Server Management StudioSQL Server Management Studio and Replication Monitor. 복제 모니터를 시작하는 방법은 복제 모니터 시작을 참조하세요.For information about starting Replication Monitor, see Start the Replication Monitor.

  • 일반 페이지에는 게시 이름 및 설명, 데이터베이스 이름, 게시 유형 및 구독 만료 설정이 포함되어 있습니다.The General page includes the publication name and description, the database name, the type of publication, and the subscription expiration settings.

  • 아티클 페이지는 새 게시 마법사의 아티클 페이지에 해당합니다.The Articles page corresponds to the Articles page in the New Publication Wizard. 이 페이지를 사용하여 아티클을 추가 및 삭제하고 아티클의 속성 및 열 필터링을 변경할 수 있습니다.Use this page to add and delete articles, and to change properties and column filtering for articles.

  • 행 필터 페이지는 새 게시 마법사의 테이블 행 필터 페이지에 해당합니다.The Filter Rows page corresponds to the Filter Table Rows page in the New Publication Wizard. 이 페이지를 사용하여 모든 게시 유형에 대해 정적 행 필터를 추가, 편집 및 삭제하고 병합 게시에 대해 매개 변수가 있는 행 필터 및 조인 필터를 추가, 편집 및 삭제할 수 있습니다.Use this page to add, edit, and delete static row filters for all types of publications, and to add, edit, and delete parameterized row filters and join filters for merge publications.

  • 스냅숏 페이지를 사용하면 스냅숏의 형식 및 위치, 스냅숏의 압축 여부 및 스냅숏이 적용되기 전과 후에 실행할 스크립트를 지정할 수 있습니다.The Snapshot page allows you to specify the format and location of the snapshot, whether the snapshot should be compressed, and scripts to run before and after the snapshot is applied.

  • FTP 스냅숏 페이지(SQL Server 2005 이전 버전을 실행하는 게시자에 대한 병합 게시와 스냅숏 및 트랜잭션 게시의 경우)를 사용하면 구독자가 FTP(파일 전송 프로토콜)를 통해 스냅숏 파일을 다운로드할 수 있는지 여부를 지정할 수 있습니다.The FTP Snapshot page (for snapshot and transactional publications, and merge publications for Publishers running versions prior to SQL Server 2005) allows you to specify whether Subscribers can download snapshot files through File Transfer Protocol (FTP).

  • FTP 스냅숏 및 인터넷 페이지(SQL Server 2005 이후 버전을 실행하는 게시자에 대한 병합 게시의 경우)를 사용하면 구독자가 FTP를 통해 스냅숏 파일을 다운로드할 수 있는지 여부와 구독자가 HTTPS를 통해 구독을 동기화할 수 있는지 여부를 지정할 수 있습니다.The FTP Snapshot and Internet page (for merge publications from Publishers running SQL Server 2005 or later) allows you to specify whether Subscribers can download snapshot files through FTP, and whether Subscribers can synchronize subscriptions through HTTPS.

  • 구독 옵션 페이지를 사용하면 모든 구독에 적용되는 여러 옵션을 설정할 수 있습니다.The Subscription Options page allows you to set a number of options that apply to all subscriptions. 사용할 수 있는 옵션은 게시 유형에 따라 달라집니다.The options differ depending on the type of publication.

  • 게시 액세스 목록 페이지를 사용하면 게시에 액세스할 수 있는 로그인 및 그룹을 지정할 수 있습니다.The Publication Access List page allows you to specify which logins and groups can access a publication.

  • 에이전트 보안 페이지를 사용하여 모든 게시에 대한 스냅숏 에이전트, 모든 트랜잭션 게시에 대한 로그 판독기 에이전트, 지연 업데이트 구독을 허용하는 트랜잭션 게시에 대한 큐 판독기 에이전트 등 실행하고 복제 토폴로지의 컴퓨터에 이러한 에이전트를 연결하는 계정에 대한 설정에 액세스할 수 있습니다.The Agent Security page allows you to access settings for the accounts under which the following agents run and make connections to the computers in a replication topology: the Snapshot Agent for all publications; the Log Reader Agent for all transactional publications; and the Queue Reader Agent for transactional publications that allow queued updating subscriptions.

  • 데이터 파티션 페이지(SQL Server 2005 이후 버전을 실행하는 게시자의 병합 게시의 경우)를 사용하면 매개 변수가 있는 필터가 있는 게시에 대한 구독자가 스냅숏을 사용할 수 없는 경우 스냅숏을 요청할 수 있는지 여부를 지정할 수 있습니다.The Data Partitions page (for merge publications from Publishers running SQL Server 2005 or later) allows you to specify whether Subscribers to publications with parameterized filters can request a snapshot if one is not available. 또한 하나 이상의 파티션에 대해 스냅숏을 한 번 또는 되풀이되는 일정에 따라 생성할 수 있습니다.It also allows you to generate snapshots for one or more partitions, either once or on a recurring schedule.

아티클 속성을 보고 수정하려면To view and modify article properties

  1. 게시 속성 - <게시> 대화 상자의 아티클 페이지에서 아티클을 선택한 후 아티클 속성을 클릭합니다.On the Articles Page of the Publication Properties - <Publication> dialog box, select an article, and then click Article Properties.

  2. 속성 변경 내용을 적용할 아티클을 다음과 같이 선택합니다.Select which articles property changes should apply to:

    • 선택한 <ObjectType> 아티클 속성 설정을 클릭하여 아티클 속성 - <ObjectName> 대화 상자를 엽니다. 이 대화 상자에서 변경한 속성은 아티클 페이지의 개체 창에 강조 표시된 개체에만 적용됩니다.Click Set Properties of Highlighted <ObjectType> Article to launch the Article Properties - <ObjectName> dialog box; property changes made in this dialog box are applied only to the object that is highlighted in the object pane on the Articles page.

    • 모든 <ObjectType> 아티클 속성 설정을 클릭하여 모든 <ObjectType> 아티클의 속성 대화 상자를 엽니다. 이 대화 상자에서 변경한 속성은 게시용으로 아직 선택하지 않은 개체를 비롯하여 아티클 페이지의 개체 창에서 해당 형식을 갖는 모든 개체에 적용됩니다.Click Set Properties of All <ObjectType> Articles, to launch the Properties for All <ObjectType> Articles dialog box; property changes made in this dialog box are applied to all objects of that type in the object pane on the Articles page, including ones not yet selected for publication.

      참고

      모든 <ObjectType> 아티클의 속성 대화 상자에서 변경한 속성은 이전에 아티클 속성 - <ObjectName> 대화 상자에서 지정한 내용을 재정의합니다.Property changes made in the Properties for All <ObjectType> Articles dialog box override any made previously in the Article Properties - <ObjectName> dialog box. 예를 들어 특정 개체 유형의 모든 아티클에 대해 여러 기본값을 설정하고 개별 개체에 대해 일부 속성도 설정하려면 먼저 모든 아티클의 기본값을 설정합니다.If, for example, you want to set a number of defaults for all articles of an object type, but also want to set some properties for individual objects, set the defaults for all articles first. 그런 다음 개별 개체에 대해 속성을 설정합니다.Then set the properties for the individual objects.

  3. 필요한 경우 속성을 수정한 다음 확인을 클릭합니다.Modify any properties if necessary, and then click OK.

  4. 게시 속성 - <게시> 대화 상자에서 확인을 클릭합니다.Click OK on the Publication Properties - <Publication> dialog box.

Transact-SQL 사용Using Transact-SQL

아티클은 수정할 수 있으며 복제 저장 프로시저를 사용하여 프로그래밍 방식으로 해당 속성을 반환할 수 있습니다.Articles can be modified and their properties returned programmatically using replication stored procedures. 사용되는 저장 프로시저는 아티클이 속한 게시 유형에 따라 달라집니다.The stored procedures that you use depend on the type of publication to which the article belongs.

스냅숏 또는 트랜잭션 게시에 속한 아티클의 속성을 보려면To view the properties of an article belonging to a snapshot or transactional publication

  1. 테이블 아티클에 대해 sp_helparticle을 실행하고 @publication 매개 변수에 게시의 이름을, @article 매개 변수에 아티클의 이름을 지정합니다.Execute sp_helparticle, specifying the name of the publication for the @publication parameter and the name of the article for the @article parameter. @article을 지정하지 않으면 게시의 모든 아티클에 대한 정보가 반환됩니다.If you do not specify @article, information will be returned for all articles in the publication.

  2. 테이블 아티클에 대해 sp_helparticlecolumns 를 실행하여 기본 테이블에서 사용할 수 있는 모든 열을 나열합니다.Execute sp_helparticlecolumns for table articles to list all columns available in the base table.

스냅숏 또는 트랜잭션 게시에 속한 아티클의 속성을 수정하려면To modify the properties of an article belonging to a snapshot or transactional publication

  1. 테이블 아티클에 대해 sp_changearticle을 실행하고 @property 매개 변수에 변경되는 아티클 속성을, @value 매개 변수에 아티클의 이름을 지정합니다.Execute sp_changearticle, specifying the article property being changed in the @property parameter and the new value of this property in the @value parameter.

    참고

    변경으로 인해 새 스냅숏을 생성해야 하는 경우 @force_invalidate_snapshot@force_invalidate_snapshot값을 지정해야 하며, 변경으로 인해 구독자를 다시 초기화해야 하는 경우 @force_invalidate_snapshot@force_reinit_subscription를 참조하세요.If the change requires the generation of a new snapshot, you must also specify a value of 1 for @force_invalidate_snapshot, and if the change requires that Subscribers be reinitialized, you must also specify a value of 1 for @force_reinit_subscription. 변경된 경우 새 스냅숏 또는 다시 초기화가 필요한 속성에 대한 자세한 내용은 게시 및 아티클 속성 변경을 참조하세요.For more information on the properties that, when changed, require a new snapshot or reinitialization, see Change Publication and Article Properties.

병합 게시에 속한 아티클의 속성을 보려면To view the properties of an article belonging to a merge publication

  1. 테이블 아티클에 대해 sp_helpmergearticle을 실행하고 @publication 매개 변수에 게시의 이름을, @article 매개 변수에 아티클의 이름을 지정합니다.Execute sp_helpmergearticle, specifying the name of the publication for the @publication parameter and the name of the article for the @article parameter. 이러한 매개 변수를 지정하지 않으면 게시 또는 게시자에 있는 모든 아티클에 대한 정보가 반환됩니다.If you do not specify these parameters, information will be returned for all articles in a publication or at the publisher.

  2. 테이블 아티클에 대해 sp_helpmergearticlecolumn 을 실행하여 기본 테이블에서 사용할 수 있는 모든 열을 나열합니다.Execute sp_helpmergearticlecolumn for table articles to list all columns available in the base table.

병합 게시에 속한 아티클의 속성을 수정하려면To modify the properties of an article belonging to a merge publication

  1. 테이블 아티클에 대해 sp_changemergearticle을 실행하고 @property 매개 변수에 변경되는 아티클 속성을, @value 매개 변수에 아티클의 이름을 지정합니다.Execute sp_changemergearticle, specifying the article property being changed in the @property parameter and the new value of this property in the @value parameter.

    참고

    변경으로 인해 새 스냅숏을 생성해야 하는 경우 @force_invalidate_snapshot@force_invalidate_snapshot값을 지정해야 하며, 변경으로 인해 구독자를 다시 초기화해야 하는 경우 @force_invalidate_snapshot@force_reinit_subscription를 참조하세요.If the change requires the generation of a new snapshot, you must also specify a value of 1 for @force_invalidate_snapshot, and if the change requires that Subscribers be reinitialized, you must also specify a value of 1 for @force_reinit_subscription. 변경된 경우 새 스냅숏 또는 다시 초기화가 필요한 속성에 대한 자세한 내용은 게시 및 아티클 속성 변경을 참조하세요.For more information on the properties that, when changed, require a new snapshot or reinitialization, see Change Publication and Article Properties.

예(Transact-SQL)Example (Transact-SQL)

이 트랜잭션 복제 예에서는 게시된 아티클의 속성을 반환합니다.This transactional replication example returns the properties of the published article.

DECLARE @publication AS sysname;
SET @publication = N'AdvWorksProductTran';

USE [AdventureWorks2012]
EXEC sp_helparticle
  @publication = @publication;
GO

이 트랜잭션 복제 예에서는 게시된 아티클에 대한 스키마 옵션을 변경합니다.This transactional replication example changes the schema options for the published article.

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 [AdventureWorks2012]
EXEC sp_changearticle 
  @publication = @publication,
  @article = @article, 
  @property = N'schema_option', 
  @value = @option,
  @force_invalidate_snapshot = 1;
GO

이 병합 복제 예에서는 게시된 아티클의 속성을 반환합니다.This merge replication example returns the properties of the published article.

DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';

USE [AdventureWorks2012]
EXEC sp_helpmergearticle
  @publication = @publication;
GO

이 병합 복제 예에서는 게시된 아티클에 대한 충돌 검색 설정을 변경합니다.This merge replication example changes the conflict detection settings for a published article.

DECLARE @publication AS sysname;
DECLARE @article AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @article = N'SalesOrderHeader';

-- Enable column-level conflict tracking.
-- Changing this property requires that existing subscriptions
-- be reinitialized and that a new snapshot be generated.
USE [AdventureWorks2012]
EXEC sp_changemergearticle 
  @publication = @publication,
  @article = @article, 
  @property = N'column_tracking', 
  @value = N'true',
  @force_invalidate_snapshot = 1,
  @force_reinit_subscription = 1;
GO

RMO(복제 관리 개체) 사용Using Replication Management Objects (RMO)

RMO(복제 관리 개체)를 사용하여 프로그래밍 방식으로 아티클을 수정하고 해당 속성에 액세스할 수 있습니다.You can modify articles and access their properties programmatically by using Replication Management Objects (RMO). 아티클 속성을 보거나 수정하는 데 사용되는 RMO 클래스는 아티클이 속한 게시 유형에 따라 달라집니다.The RMO classes you use to view or modify article properties depend on the type of publication to which the article belongs.

스냅숏 또는 트랜잭션 게시에 속하는 아티클의 속성을 보거나 수정하려면To view or modify properties of an article that belongs to a snapshot or transactional publication

  1. ServerConnection 클래스를 사용하여 게시자 연결을 만듭니다.Create a connection to the Publisher by using the ServerConnection class.

  2. TransArticle 클래스의 인스턴스를 만듭니다.Create an instance of the TransArticle class.

  3. Name, PublicationNameDatabaseName 속성을 설정합니다.Set the Name, PublicationName, and DatabaseName properties.

  4. ConnectionContext 속성에 대해 1단계에서 만든 연결을 설정합니다.Set the connection from step 1 for the ConnectionContext property.

  5. LoadProperties 메서드를 호출하여 개체 속성을 가져옵니다.Call the LoadProperties method to get the properties of the object. 이 메서드가 false를 반환하는 경우 3단계에서 아티클 속성이 올바르게 정의되지 않았거나 아티클이 없습니다.If this method returns false, either the article properties in step 3 were defined incorrectly or the article does not exist.

  6. (옵션) 속성을 변경하려면 설정할 수 있는 TransArticle 속성 중 하나에 대해 새 값을 설정합니다.(Optional) To change properties, set a new value for one of the TransArticle properties that can be set.

  7. (옵션) P:Microsoft.SqlServer.Replication.ReplicationObject.CachePropertyChanges 값도 CachePropertyChanges값을 지정했으면 CommitPropertyChanges 메서드를 호출하여 서버의 변경 내용을 커밋합니다.(Optional) If you specified a value of true for CachePropertyChanges, call the CommitPropertyChanges method to commit changes on the server. CachePropertyChanges에 대해 false 값(기본값)을 지정했으면 변경 내용이 즉시 서버로 전송됩니다.If you specified a value of false for CachePropertyChanges (the default), changes are sent to the server immediately.

병합 게시에 속하는 아티클의 속성을 보거나 수정하려면To view or modify properties of an article that belongs to a merge publication

  1. ServerConnection 클래스를 사용하여 게시자 연결을 만듭니다.Create a connection to the Publisher by using the ServerConnection class.

  2. MergeArticle 클래스의 인스턴스를 만듭니다.Create an instance of the MergeArticle class.

  3. Name, PublicationNameDatabaseName 속성을 설정합니다.Set the Name, PublicationName, and DatabaseName properties.

  4. ConnectionContext 속성에 대해 1단계에서 만든 연결을 설정합니다.Set the connection from step 1 for the ConnectionContext property.

  5. LoadProperties 메서드를 호출하여 개체 속성을 가져옵니다.Call the LoadProperties method to get the properties of the object. 이 메서드가 false를 반환하는 경우 3단계에서 아티클 속성이 올바르게 정의되지 않았거나 아티클이 없습니다.If this method returns false, either the article properties in step 3 were defined incorrectly or the article does not exist.

  6. (옵션) 속성을 변경하려면 설정할 수 있는 MergeArticle 속성 중 하나에 대해 새 값을 설정합니다.(Optional) To change properties, set a new value for one of the MergeArticle properties that can be set.

  7. (옵션) P:Microsoft.SqlServer.Replication.ReplicationObject.CachePropertyChanges 값도 CachePropertyChanges값을 지정했으면 CommitPropertyChanges 메서드를 호출하여 서버의 변경 내용을 커밋합니다.(Optional) If you specified a value of true for CachePropertyChanges, call the CommitPropertyChanges method to commit changes on the server. CachePropertyChanges에 대해 false 값(기본값)을 지정했으면 변경 내용이 즉시 서버로 전송됩니다.If you specified a value of false for CachePropertyChanges (the default), changes are sent to the server immediately.

예(RMO)Example (RMO)

다음 예에서는 병합 아티클을 변경하여 아티클에서 사용하는 비즈니스 논리 처리기를 지정합니다.This example changes a merge article to specify the business logic handler used by the article.

// Define the Publisher, publication, and article names.
string publisherName = publisherInstance;
string publicationName = "AdvWorksSalesOrdersMerge";
string publicationDbName = "AdventureWorks2012";
string articleName = "SalesOrderHeader";

// Set the friendly name of the business logic handler.
string customLogic = "OrderEntryLogic";

MergeArticle article = new MergeArticle();

// Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(publisherName);

try
{
	// Connect to the Publisher.
	conn.Connect();

	// Set the required properties for the article.
	article.ConnectionContext = conn;
	article.Name = articleName;
	article.DatabaseName = publicationDbName;
	article.PublicationName = publicationName;

	// Load the article properties.
	if (article.LoadProperties())
	{
		article.ArticleResolver = customLogic;
	}
	else
	{
		// Throw an exception of the article does not exist.
		throw new ApplicationException(String.Format(
		"{0} is not published in {1}", articleName, publicationName));
	}
	
}
catch (Exception ex)
{
	// Do error handling here and rollback the transaction.
	throw new ApplicationException(String.Format(
		"The business logic handler {0} could not be associated with " +
		" the {1} article.",customLogic,articleName), ex);
}
finally
{
	conn.Disconnect();
}
' Define the Publisher, publication, and article names.
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2012"
Dim articleName As String = "SalesOrderHeader"

' Set the friendly name of the business logic handler.
Dim customLogic As String = "OrderEntryLogic"

Dim article As MergeArticle = New MergeArticle()

' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)

Try
    ' Connect to the Publisher.
    conn.Connect()

    ' Set the required properties for the article.
    article.ConnectionContext = conn
    article.Name = articleName
    article.DatabaseName = publicationDbName
    article.PublicationName = publicationName

    ' Load the article properties.
    If article.LoadProperties() Then
        article.ArticleResolver = customLogic
    Else
        ' Throw an exception of the article does not exist.
        Throw New ApplicationException(String.Format( _
         "{0} is not published in {1}", articleName, publicationName))
    End If

Catch ex As Exception
    ' Do error handling here and rollback the transaction.
    Throw New ApplicationException(String.Format( _
     "The business logic handler {0} could not be associated with " + _
     " the {1} article.", customLogic, articleName), ex)
Finally
    conn.Disconnect()
End Try

관련 항목:See Also

병합 아티클에 대한 비즈니스 논리 처리기 구현 Implement a Business Logic Handler for a Merge Article
데이터 및 데이터베이스 개체 게시 Publish Data and Database Objects
게시 및 아티클 속성 변경 Change Publication and Article Properties
Replication System Stored Procedures Concepts Replication System Stored Procedures Concepts
Advanced Merge Replication Conflict Detection and ResolutionAdvanced Merge Replication Conflict Detection and Resolution