필터 추가 또는 편집Add or Edit Filter

이 항목 적용 대상: 예SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse 필터 추가필터 편집 대화 상자를 사용하여 정적 행 필터 및 매개 변수가 있는 행 필터를 추가 및 편집할 수 있습니다. The Add Filter and Edit Filter dialog boxes allow you to add and edit static row filters and parameterized row filters.

참고

기존 게시에서 필터를 편집하려면 해당 게시에 대한 새 스냅숏이 필요합니다.Editing a filter in an existing publication requires a new snapshot for the publication. 게시에 구독이 있으면 해당 구독을 다시 초기화해야 합니다.If a publication has subscriptions, the subscriptions must be reinitialized. 속성 변경에 대한 자세한 내용은 게시 및 아티클 속성 변경을 참조하세요.For more information about property changes, see Change Publication and Article Properties.

모든 게시 유형은 정적 필터를 포함할 수 있습니다. 또한 병합 게시는 매개 변수가 있는 필터를 포함할 수 있습니다.All publication types can include static filters; merge publications can also include parameterized filters. 정적 필터는 게시가 생성될 때 평가됩니다. 즉, 해당 게시에 대한 모든 구독자는 같은 데이터를 받습니다.A static filter is evaluated when the publication is created: all Subscribers to the publication receive the same data. 매개 변수가 있는 필터는 복제 동기화 중에 평가됩니다. 즉, 서로 다른 구독자는 각 구독자의 로그인 또는 컴퓨터 이름에 따라 다른 데이터 파티션을 받을 수 있습니다.A parameterized filter is evaluated during replication synchronization: different Subscribers can receive different partitions of data based on the login or computer name of each Subscriber. 대화 상자에서 예문 링크를 클릭하여 필터의 각 유형에 대한 예를 볼 수 있습니다.Click the Example statements link in the dialog box to see examples of each type of filter. 필터링 옵션에 대한 자세한 내용은 게시된 데이터 필터링을 참조하세요.For more information about filtering options, see Filter Published Data.

행 필터를 사용하여 게시할 행의 하위 집합을 테이블로부터 지정할 수 있습니다.Using row filters, you can specify a subset of rows to be published from a table. 중요한 정보 또는 비밀 정보가 포함된 행과 같이 사용자가 보지 말아야 하는 행을 삭제하거나 서로 다른 구독자에 전달할 서로 다른 데이터 파티션을 만드는 데 행 필터를 사용할 수 있습니다.Row filters can be used to eliminate rows that users do not need to see (such as rows that contain sensitive or confidential information), or to create different partitions of data that are sent to different Subscribers. 서로 다른 데이터 파티션을 서로 다른 구독자로 게시하면 여러 구독자에서 동일한 데이터를 업데이트함으로써 발생할 수 있는 충돌을 방지할 수 있습니다.Publishing different partitions of data to different Subscribers can also help avoid conflicts that would otherwise be caused by multiple Subscribers updating the same data.

옵션Options

이 대화 상자는 2단계로 이루어진 트랜잭션 및 스냅숏 게시 처리 과정과 3단계로 이루어진 병합 게시 처리 과정으로 구성되어 있습니다.This dialog box involves a two-step process for transactional and snapshot publications and a three-step process for merge publications. 모든 게시 유형에 대해 필터링할 테이블과 필터에 포함할 하나 이상의 열을 선택해야 합니다. 필터는 표준 WHERE 절로 정의합니다.All publication types require you to select a table to be filtered and one or more columns to be included in the filter; the filter is defined as a standard WHERE clause.

  1. 필터링할 테이블을 선택하십시오.Select the table to filter

    기존 필터를 편집하는 경우 테이블을 변경할 수 없습니다.If you are editing an existing filter, the table selection cannot be changed. 새 필터를 추가하는 경우 드롭다운 목록 상자에서 테이블을 선택합니다.If you are adding a new filter, select a table from the drop-down list box. 아티클 페이지에서 선택한 테이블 중 아직 행 필터가 없는 테이블만 목록 상자에 표시됩니다.Tables appear in the list box only if they were selected on the Articles page and do not already have a row filter. 테이블에 행 필터가 있지만 새 필터를 정의하려면 다음을 수행하십시오.If a table has a row filter and you want to define a new one:

    1. 필터 추가 대화 상자에서 취소 를 클릭합니다.Click Cancel on the Add Filter dialog box.

    2. 테이블 행 필터 페이지의 필터 창에서 테이블을 선택하고 편집을 클릭합니다.Select the table in the filter pane on the Filter Table Rows page and click Edit.

    3. 필터 편집 대화 상자에서 기존 필터를 편집합니다.Edit an existing filter in the Edit Filter dialog box.

  2. 구독자가 받을 테이블 행을 식별하는 필터 문을 작성하십시오.Complete the filter statement to identify which table rows Subscribers will receive

    새 필터 문을 정의하거나 기존 필터 문을 편집합니다.Define a new filter statement or edit an existing one. 목록 상자는 필터링할 테이블을 선택하십시오에서 선택한 테이블에서 게시 중인 열을 모두 나열합니다.The Columns list box lists all the columns that you are publishing from the table you selected in Select the table to filter. 필터 문 텍스트 영역에는 다음 형식의 기본 텍스트가 포함됩니다.The Filter statement text area includes the default text, which is in the form of:

    SELECT <published_columns> FROM [schema].[tablename] WHERE

    이 텍스트는 변경할 수 없습니다. 표준 Transact-SQLTransact-SQL 구문을 사용하여 WHERE 키워드 뒤에 필터 절을 입력합니다.This text cannot be changed; type the filter clause after the WHERE keyword using standard Transact-SQLTransact-SQL syntax. 게시자가 Oracle 게시자인 경우 WHERE 절은 Oracle 쿼리 구문과 호환되어야 합니다.If the Publisher is an Oracle Publisher, the WHERE clause must be compliant with Oracle query syntax. 가능하면 복잡한 필터를 사용하지 마십시오.Avoid using complex filters when possible. 정적 필터 및 매개 변수가 있는 필터는 모두 게시 처리 시간을 증가시키므로 필터 문을 최대한 단순하게 유지해야 합니다.Both static and parameterized filters increase processing time for publications; therefore you should keep filter statements as simple as possible.

    중요

    성능상의 이유로 LEFT([MyColumn]) = SUSER_SNAME()과 같이 병합 게시에 대한 매개 변수가 있는 행 필터 절의 열 이름에는 함수를 적용하지 않는 것이 좋습니다.For performance reasons, we recommended that you not apply functions to column names in parameterized row filter clauses for merge publications, such as LEFT([MyColumn]) = SUSER_SNAME(). 필터 절에 HOST_NAME을 사용하고 HOST_NAME 값을 재지정할 경우 CONVERT를 사용하여 데이터 형식을 변환해야 할 수 있습니다.If you use HOST_NAME in a filter clause and override the HOST_NAME value, it might be necessary to convert data types using CONVERT. 이를 위한 최선의 구현 방법은 Parameterized Row Filters항목의 "HOST_NAME() 값 재정의" 섹션을 참조하십시오.For more information about best practices for this case, see the section "Overriding the HOST_NAME() Value" in the topic Parameterized Row Filters.

  3. 이 테이블의 데이터를 받을 구독 수를 지정하십시오.Specify how many subscriptions will receive data from this table

    MicrosoftMicrosoft SQL Server 2005SQL Server 2005 이상 버전만 해당하며 병합 게시만 사용할 수 있습니다. SQL Server 2005SQL Server 2005 and later versions only; merge replication only. 병합 복제를 사용하면 데이터 및 응용 프로그램에 가장 적합한 파티션 유형을 지정할 수 있습니다.Merge replication allows you to specify the type of partitions that are best suited to your data and application. 이 테이블의 행을 단일 구독으로 이동을 선택하면 병합 복제에서 겹치지 않는 파티션 옵션을 설정합니다.If you select A row from this table will go to only one subscription, merge replication sets the nonoverlapping partitions option. 겹치지 않는 파티션을 사전 계산 파티션과 함께 사용하면 겹치지 않는 파티션이 사전 계산 파티션과 연관된 업로드 비용을 최소화하므로 성능을 향상시킬 수 있습니다.Nonoverlapping partitions work in conjunction with precomputed partitions to improve performance, with nonoverlapping partitions minimizing the upload cost associated with precomputed partitions. 사용하는 매개 변수가 있는 필터와 조인 필터가 복잡할수록 겹치지 않는 파티션의 성능상 이점이 더욱 분명하게 드러납니다.The performance benefit of nonoverlapping partitions is more noticeable when the parameterized filters and join filters used are more complex. 이 옵션을 선택하면 행을 둘 이상의 구독자에 복제할 수 없는 방식으로 데이터를 분할해야 합니다.If you select this option, you must ensure that the data is partitioned in such a way that a row cannot be replicated to more than one Subscriber. 자세한 내용은 Parameterized Row Filters항목의 "'partition options' 설정" 섹션을 참조하십시오.For more information, see the section "Setting 'partition options'" in the topic Parameterized Row Filters.

    필터를 추가 또는 편집한 후에는 확인 을 클릭하여 변경 내용을 저장하고 대화 상자를 닫습니다.After you have added or edited a filter, click OK to save changes and close the dialog box. 지정한 필터가 구문 분석되고 SELECT 절의 테이블에 대해 실행됩니다.The filter you specified is parsed and run against the table in the SELECT clause. 필터 문에 구문 오류나 기타 문제가 있으면 알림 메시지가 표시되며 이를 보고 필터 문을 편집할 수 있습니다.If the filter statement contains syntax errors or other problems, you are notified and are able to edit the filter statement.

참고 항목See Also

Create a Publication Create a Publication
게시 속성 보기 및 수정 View and Modify Publication Properties
게시된 데이터 필터링 Filter Published Data
조인 필터 Join Filters
Parameterized Row Filters Parameterized Row Filters
데이터 및 데이터베이스 개체 게시Publish Data and Database Objects