필터 생성

적용 대상:SQL Server

필터 생성 대화 상자를 사용하면 병합 게시의 한 테이블에 행 필터를 정의할 수 있습니다. 그러면 복제는 외래 키 관계를 통해 관련된 다른 테이블로 필터를 자동으로 확장합니다. 예를 들어 프랑스 고객에 대한 데이터만 포함하도록 고객 테이블에 필터를 정의하는 경우 관련 주문 및 주문 세부 정보 테이블에 프랑스 고객과 관련된 정보만 포함되도록 복제가 해당 필터를 확장합니다.

옵션

이 대화 상자에는 테이블에 행 필터를 만드는 3단계 프로세스가 포함됩니다. 그러면 기본 키와 외래 키 간의 관계를 통해 필터링된 테이블과 관련된 테이블로 필터가 확장됩니다. 예를 들어 Customer, SalesOrderHeaderSalesOrderDetail의 세 테이블과 CustomerSalesOrderHeader 간의 관계, SalesOrderHeaderSalesOrderDetail 간의 관계가 있는 세 개의 테이블이 있는 경우 Customer에 행 필터를 적용하고 복제는 해당 필터를 SalesOrderHeaderSalesOrderDetail확장합니다.

  1. 필터링할 테이블을 선택하십시오.

    드롭다운 목록 상자에서 테이블을 선택합니다. 테이블은 문서 페이지에서 선택된 경우에만 목록 상자에 표시됩니다.

  2. 필터 문을 완료하여 구독자가 받을 테이블 행을 식별합니다.

    새 필터 문을 정의합니다. 목록 상자는 필터링할 테이블을 선택하십시오에서 선택한 테이블에서 게시 중인 열을 모두 나열합니다. 필터 문 텍스트 영역에는 다음 형식의 기본 텍스트가 포함됩니다.

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

    이 텍스트는 변경할 수 없습니다. 표준 Transact-SQL 구문을 사용하여 WHERE 키워드 뒤의 필터 절을 입력합니다.

    Important

    성능상의 이유로 LEFT([MyColumn]) = SUSER_SNAME()과 같은 매개 변수가 있는 행 필터 절의 열 이름에는 함수를 적용하지 않는 것이 좋습니다. 필터 절에서 HOST_NAME 사용하고 HOST_NAME 값을 재정의하는 경우 CONVERT를 사용하여 데이터 형식을 변환해야 할 수 있습니다. 이를 위한 최선의 구현 방법은 Parameterized Row Filters항목의 "HOST_NAME() 값 재정의" 섹션을 참조하십시오.

  3. 이 테이블에서 데이터를 받을 구독 수를 지정합니다.

    Microsoft SQL Server 2005(9.x) 이상 버전만 해당합니다. 병합 복제를 사용하면 데이터 및 애플리케이션에 가장 적합한 파티션 유형을 지정할 수 있습니다. 이 테이블에서 행을 선택하면 하나의 구독으로만 이동하게 되며 병합 복제는 오버랩되지 않는 파티션 옵션을 설정합니다. 겹치지 않는 파티션을 사전 계산 파티션과 함께 사용하면 겹치지 않는 파티션이 사전 계산 파티션과 연관된 업로드 비용을 최소화하므로 성능을 향상시킬 수 있습니다. 매개 변수가 있는 필터 및 사용된 조인 필터가 더 복잡할 때 비오버랩 파티션의 성능 이점이 더 두드러집니다. 이 옵션을 선택하면 행을 둘 이상의 구독자에 복제할 수 없는 방식으로 데이터를 분할해야 합니다. 자세한 내용은 매개 변수가 있는 행 필터 항목 의 "파티션 옵션 설정" 섹션을 참조하세요.

필터를 추가한 후 확인을 클릭하여 종료하고 대화 상자를 닫습니다. 지정한 필터가 구문 분석되어 SELECT 절의 테이블에 대해 실행됩니다. 필터 문에 구문 오류 또는 기타 문제가 포함된 경우 알림이 표시되고 필터 문을 편집할 수 있습니다.

문이 구문 분석되면 복제에서 필요한 조인 필터를 만듭니다. 이 마법사가 실행 중인 게시자에 대한 배포자를 아직 구성하지 않은 경우 구성하라는 메시지가 표시됩니다.

참고 항목

게시 만들기
게시 속성 보기 및 수정
게시된 데이터 필터링
조인 필터
매개 변수가 있는 행 필터
데이터 및 데이터베이스 개체 게시