다음을 통해 공유


알림 스키마 정의

구독 규칙은 알림 뷰에 알림을 삽입합니다. 이 뷰는 알림 테이블에 대한 뷰로 알림 클래스의 이름을 따서 명명합니다. 이 뷰 및 기본 테이블의 스키마는 알림 클래스 스키마에서 파생됩니다. 이 스키마를 구성하는 필드를 알림 클래스에 정의합니다.

이 항목에서는 Notification Services가 스키마에 추가하는 기본 필드 및 알림 데이터에 대해 사용자 지정 계산 필드를 비롯한 사용자 지정 필드를 만드는 방법을 설명합니다.

기본 알림 필드

Notification Services는 알림 클래스에 대한 알림을 저장하는 테이블을 만들 때 선언된 각 알림 필드에 대한 테이블에 열을 1개 만들고 알림 서식 지정 및 배달에 사용되는 5개의 다른 열을 추가합니다.

[!참고] 알림 클래스 스키마에 다음 필드는 정의하지 마십시오. 이렇게 하면 필드 정의가 중복되어 응용 프로그램을 만들 수 없게 됩니다.

  • NotificationIdbigint 열입니다. Notification Services는 각 알림에 대해 이 필드의 값을 제공합니다. 이 값은 알림 클래스 내에서 고유합니다.
  • NotificationBatchIdbigint 열입니다. 알림을 생성하는 각 규칙 발생은 하나 이상의 알림 일괄 처리를 생성합니다. Notification Services는 일괄 처리 번호를 알림 테이블에 자동으로 삽입합니다.
  • SubscriberId는 생성된 알림에 대한 구독자 ID를 포함하는 nvarchar(255) 열입니다. Notification Services는 이 구독자 ID를 사용하여 알림에 대한 배달 정보를 조회합니다. 알림을 생성하는 구독 규칙은 이 값을 삽입해야 합니다.
  • DeviceName은 인스턴스 데이터베이스의 SubscriberDevices 테이블에 저장되는 구독자 장치의 이름이 들어 있는 nvarchar(255) 열입니다. Notification Services는 이 장치 이름을 사용하여 배달 정보를 가져오며 사용자 지정 서식 지정을 위해 콘텐츠 포맷터에 장치 이름을 제공할 수 있습니다. 알림을 생성하는 구독 규칙은 이 값을 삽입해야 합니다. SubscriberIdDeviceName 쌍은 SubscriberDevices 테이블의 레코드와 일치해야 합니다.
  • SubscriberLocale은 로캘 코드를 포함하는 nvarchar(10) 열입니다. 이 로캘 코드는 지원되는 로캘 코드 중 하나여야 하며 구독 규칙에 의해 삽입되어야 합니다. Notification Services는 콘텐츠 포맷터에 이 정보를 전달하여 콘텐츠 포맷터에서 로캘별 서식 지정을 수행할 수 있도록 합니다. 지원되는 코드 목록은 Subscriber Locale Codes를 참조하십시오.

알림 테이블의 후속 열은 알림 클래스의 알림 필드로 식별됩니다. Notification Services는 사용자 지정 필드 뒤에 알림 배달 추적을 위한 2개의 다른 필드를 추가합니다.

  • DeliveryStatusCode는 배달 상태에 대한 코드를 포함하는 tinyint 열입니다. 이 정보는 보고서 작성을 위해 제공된 것이 아닙니다.
  • SentTime은 배달 프로토콜이 알림 배달 상태를 보고한 시간을 포함하는 datetime 열입니다.
  • LinkNotificationId는 다이제스트 배달을 사용할 때만 적절한 bigint 열입니다. 해당 알림이 다이제스트에 포함되지만 다이제스트의 첫 번째 알림이 아닌 경우 이 필드는 첫 번째 알림의 ID를 포함합니다. 첫 번째 알림은 상태 및 시간 정보를 포함합니다.

이러한 필드는 디버깅 및 보고서 작성을 위한 것이 아닙니다. 따라서 이 정보를 보다 읽기 쉬운 형식으로 제공하는 NS<NotificationClassName>NotificationDistribution 뷰를 대신 사용하십시오.

사용자 지정 알림 필드

사용자 지정 필드는 구독자에게 필요한 정보를 저장하거나 최종 알림을 생성하는 데 사용되는 필드입니다.

알림 클래스에 대해 사용자 지정 필드를 정의하려면 보내려는 데이터를 알고 있어야 하며 해당 데이터가 알림을 생성하는 구독자 규칙에 의해 생성된 데이터와 일치해야 합니다.

각 사용자 지정 필드에 대해 필드 이름과 데이터 형식을 정의해야 합니다. 날씨 예보를 포함하는 알림을 보내려면 다음 알림 필드를 정의할 수 있습니다.

  • 필드 이름: City, 필드 유형: nvarchar(35)
  • 필드 이름: State, 필드 유형: nvarchar(35)
  • 필드 이름: Forecast, 필드 유형: nvarchar(3500)

이러한 필드의 데이터 형식은 알림 생성 시 사용한 원본 데이터 형식과 호환되어야 합니다.

다이제스트 배달을 사용하며 상태가 같은 구독자 알림을 모두 그룹화하려면 해당 필드에 대해 다이제스트 그룹화를 true로 설정합니다. State 필드에 대한 새로운 정의는 다음과 같습니다.

  • 필드 이름: State, 필드 유형: nvarchar(35), 다이제스트 그룹화: true

다이제스트 배달에 대한 자세한 내용은 다이제스트 또는 멀티캐스트 배달 지정을 참조하십시오.

알림 클래스에 대한 필드 정의

계산 필드

계산 필드를 사용하면 콘텐츠가 콘텐츠 포맷터로 전달되기 직전에 알림 데이터를 계산할 수 있습니다.

계산 필드는 Transact-SQL 식을 사용하여 알림이 콘텐츠 포맷터로 전달되기 직전에 알림 필드 값을 생성합니다. 응용 프로그램 데이터베이스에서 SELECT 쿼리의 일부로 계산할 수 있는 어떠한 Transact-SQL 식도 사용할 수 있습니다. 여기에는 임의의 상수 사용과 함수 호출 등이 포함됩니다.

[!참고] Transact-SQL 구문에서 문자열 상수는 인용 부호로 묶어야 합니다. 따라서 계산 필드에 문자열을 사용하려면 단일 어포스트로피로 묶어야 합니다. 문자열이 유니코드이면 N'myString'과 같이 문자열 앞에 N을 붙여야 합니다.

알림 클래스에 계산 필드를 추가하려면 필드 이름 및 Transact-SQL 식을 정의합니다. 예를 들어 가격을 서식이 지정된 문자열로 변환하려는 경우 계산 필드 정의에 다음을 지정할 수 있습니다.

  • 필드 이름: FormattedStockPrice;
  • Transact-SQL 식: CONVERT(NVARCHAR(10), StockPrice, 1)

콘텐츠 포맷터로 알림을 보낼 때 이 계산 필드는 StockPrice 필드에서 해당 값을 가져와 서식이 지정된 문자열로 변환합니다. 예를 들어 StockPrice 필드의 money 값이 1000.70이면 FormattedStockPrice는 문자열 1,000.70이 됩니다.

다이제스트 배달을 위해 그룹화할 알림을 결정하는 데 계산 필드가 사용되도록 지정할 수도 있습니다. 계산 필드 값이 같은 알림을 그룹화하려면 계산 필드에 대해 다이제스트 그룹화 속성을 true로 설정합니다.

알림 클래스에 대한 계산 필드 정의

참고 항목

개념

콘텐츠 포맷터 구성
다이제스트 또는 멀티캐스트 배달 지정
알림 일괄 처리 크기 지정
알림 만료 기간 지정
다이제스트 또는 멀티캐스트 배달 지정

관련 자료

알림 클래스 정의
배달 프로토콜 구성
식(Transact-SQL)
CREATE TABLE(Transact-SQL)
알림 클래스 정의
Notification Services 응용 프로그램 정의

도움말 및 정보

SQL Server 2005 지원 받기