Share via


SubscriptionConditionEventRule.SqlExpression Property

入力データとサブスクリプション データから通知を生成するために使用する Transact-SQL クエリを取得または設定します。

名前空間: Microsoft.SqlServer.Management.Nmo
アセンブリ: Microsoft.SqlServer.Smo (microsoft.sqlserver.smo.dll 内)

構文

'宣言
Public Property SqlExpression As String
public string SqlExpression { get; set; }
public:
property String^ SqlExpression {
    String^ get ();
    void set (String^ value);
}
/** @property */
public String get_SqlExpression ()

/** @property */
public void set_SqlExpression (String value)
public function get SqlExpression () : String

public function set SqlExpression (value : String)

プロパティ値

ルールの起動時に毎回実行する Transact-SQL クエリを示す長さ 1 ~ 100,000 文字の String です。

解説

SqlExpression プロパティは、通知生成のコアとなるクエリを格納します。このクエリは、サブスクリプションと入力フィールドを選択し、通知テーブルに追加します。

クエリは、サブスクリプションと入力フィールドを結合したビューからサブスクリプションと入力フィールドを選択する必要があります。ビュー内のサブスクリプション フィールドの名前は、[Subscription.SubscriptionFieldName] の形式です。入力 (イベント) フィールドの名前は、[Input.EventFieldName] の形式です。

サブスクライバは、サブスクリプション管理インターフェイスを介して、サブスクリプション内にクエリの WHERE 句に相当するものを作成します。Notification Services は、関連するすべてのサブスクリプションに対する条件アクションを評価し、通知を生成します。

条件アクションおよび Transact-SQL 式のテンプレートの詳細については、「条件アクションの定義」を参照してください。

使用例

次の例は、条件ベースのイベント ドリブン サブスクリプション ルールを定義してサブスクリプション クラスに追加する方法を示しています。

// Add a rule to generate condition-based, event notifications
SubscriptionConditionEventRule flightConditionEventRule = 
    new SubscriptionConditionEventRule(
    flightSubscriptions, "FlightConditionEventRule");
flightConditionEventRule.EventClassName = "FlightEvents";
flightConditionEventRule.ActionTimeout = new TimeSpan(0, 2, 0);
flightConditionEventRule.SqlLoginName = "MyLowPrivLogin";
flightConditionEventRule.SqlUserName = "MyLowPrivUser";
flightConditionEventRule.InputTypeName = "FlightEvents";
flightConditionEventRule.InputTypeSchema = "MyAppSchema";
flightConditionEventRule.SqlExpression =
    "INSERT INTO MyAppSchema.FlightNotifications (SubscriberId, " +
    "DeviceName, SubscriberLocale, LeavingFrom, GoingTo, Price) " +
    "SELECT [Subscription.SubscriberId], [Subscription.DeviceName], " +
    "[Subscription.SubscriberLocale], " +
    "[Input.LeavingFrom], [Input.GoingTo], [Input.Price] " +
    "FROM MyAppSchema.FlightConditionEventRule;";
flightSubscriptions.SubscriptionConditionEventRules.Add(
    flightConditionEventRule);
' Add a rule to generate condition-based, event notifications
Dim flightConditionEventRule As _
    SubscriptionConditionEventRule = _
    New SubscriptionConditionEventRule( _
    flightSubscriptions, "FlightConditionEventRule")
flightConditionEventRule.EventClassName = "FlightEvents"
flightConditionEventRule.ActionTimeout = New TimeSpan(0, 2, 0)
flightConditionEventRule.SqlLoginName = "MyLowPrivLogin"
flightConditionEventRule.SqlUserName = "MyLowPrivUser"
flightConditionEventRule.InputTypeName = "FlightEvents"
flightConditionEventRule.InputTypeSchema = "MyAppSchema"
flightConditionEventRule.SqlExpression = _
 "INSERT INTO MyAppSchema.FlightNotifications " + _
 "(SubscriberId, DeviceName, SubscriberLocale, LeavingFrom, " + _
 "GoingTo, Price) SELECT [Subscription.SubscriberId], " + _
 "[Subscription.DeviceName], [Subscription.SubscriberLocale], " + _
 "[Input.LeavingFrom], [Input.GoingTo], [Input.Price] " + _
 "FROM MyAppSchema.FlightConditionEventRule;"
flightSubscriptions.SubscriptionConditionEventRules.Add( _
    flightConditionEventRule)

スレッド セーフ

この型の public static (Microsoft Visual Basic では共有 ) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。

プラットフォーム

開発プラットフォーム

サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

対象プラットフォーム

サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

参照

関連項目

SubscriptionConditionEventRule Class
SubscriptionConditionEventRule Members
Microsoft.SqlServer.Management.Nmo Namespace

その他の技術情報

ConditionAction の SqlExpression 要素 (ADF)
イベント ルールの定義
条件アクションの定義
EventRule 要素 (ADF)
ConditionAction 要素 (ADF)