Sales Orders サンプルの実装の詳細

更新 : 2006 年 7 月 17 日

ここでは、Adventure Works Sales Orders サンプル アプリケーションの実装の詳細と設計上の決定事項のいくつかを説明します。このサンプルは Microsoft SQL Server 2005 に付属しています。これを使用して、サーバーからクライアントへのマージ レプリケーションのプログラミングの利点を示します。詳細については、「Sales Orders サンプル (マージ レプリケーション用)」を参照してください。

アーキテクチャの概要

アプリケーションそのものは、Microsoft Visual Studio 2005 を使用して開発された Microsoft Windows フォームベースのマネージ クライアントです。このクライアント アプリケーションは、Microsoft .NET Framework 2.0 のデータ アクセス機能を使用して、SQL Server 2005 (全エディション) のローカル インスタンス内の販売注文データにアクセスします。営業担当者のコンピュータと本部に置かれた AdventureWorks メイン データベースの間でデータの一貫性を維持するために、マージ レプリケーション トポロジが実装されています。このデータはパーティション分割され、各営業担当者は自分の顧客をサポートするために必要なデータのみを受け取ります。マージ パブリケーションは、プログラムでレプリケーション ストアド プロシージャを使用して構成されます。Sales Orders アプリケーションを初めて起動すると、プログラムから SQL Server 管理オブジェクト (SMO) を使用してローカル データベースが作成され、レプリケーション管理オブジェクト (RMO) を使用してマージ プル サブスクリプションが定義されます。サブスクリプションは RMO を使用してプログラムからメンテナンスおよび監視されます。

レプリケーションの機能

マージ レプリケーションを使用することで、営業担当者は AdventureWorks データベースに接続しなくても、クライアントからの問い合わせがあったときや出張中にローカルで販売データを扱うことができます。営業担当者は定期的にインターネットに接続して、販売注文の変更をパブリッシャにアップロードし、販売注文の変更と更新された製品情報をサブスクライバにダウンロードします。このサンプルのマージ レプリケーション トポロジは、複数のサブスクライバをサポートするように設計されており、SQL Server 2005 で導入された機能に基づいています。これには、SQL Server Express と SQL Server 2005 Compact Edition が含まれます。レプリケーション トポロジについては、「モバイル ユーザーとのデータ交換」でさらに詳しく説明しています。

パラメータ化された行フィルタ

実際には、各営業担当者に帰属する販売データは、SUSER_SNAME 関数を使用して、Employee.LoginID 列のログイン情報に基づいて行方向にフィルタ選択する必要があります。フィルタ選択により、パフォーマンスが向上し、初期スナップショットのサイズが縮小し、サブスクライバ間でデータ変更の競合の可能性が減少し、アプリケーション ロジックが単純化されます。しかし、サンプル アプリケーションで SUSER_SNAME 関数を使用してフィルタ選択することは合理的ではありません。その代わり、このサンプルでは HOST_NAME 関数を使用してデータをパーティション分割しています。また、レプリケーションによって HOST_NAME 関数をオーバーロードし、データのパーティション分割用のフィルタ選択条件を指定できます。このサンプルでは WHERE HumanResources.Employee.LoginID = HOST_NAME 句を使用して、Employee テーブル アーティクルに対して行方向のフィルタを定義しています。結合フィルタを使用して、このパラメータ化された行フィルタを他の販売関連テーブルに拡張します。

ms147881.note(ja-jp,SQL.90).gif重要 :
HOST_NAME() を含むパラメータ化されたフィルタを使用する場合は、セキュリティ上の注意事項があります。詳細については、「パラメータ化された行フィルタ」の「HOST_NAME() によるフィルタ選択」を参照してください。

このサンプルで使用しているアーティクルのフィルタ選択オプションにより、パブリケーションへの各サブスクリプションに個別の Hostname 値を指定する必要があります。このサンプルの Hostname キーには、次に示す Employee.EmployeeID 値を使用できます。

  • adventure-works\michael9
  • adventure-works\pamela0
  • adventure-works\tsvi0
  • adventure-works\shu0
  • adventure-works\rachel0
  • adventure-works\lynn0

既存のサブスクリプションの Hostname 値を変更する前に、サブスクライバとパブリッシャで次の Transact-SQL スクリプトをそれぞれ実行した後、サンプルを再実行してサブスクリプションを再作成する必要があります。

-- This batch is executed at the Subscriber to remove 
-- the Sales Orders sample subscription.
DECLARE @publisher AS sysname;

-- change this value to the name of the Publisher server.
SET @publisher = N'PUBSERVER'; 

USE [AdventureWorksLocal]
EXEC sp_dropmergepullsubscription 
  @publisher = @publisher, 
  @publisher_db = N'AdventureWorks',
  @publication = N'AdvWorksSalesOrders';
GO

-- This batch is executed at the Publisher to remove 
-- the Sales Orders sample subscription.
DECLARE @subscriber AS sysname;

-- change this value to the name of the Subscriber server.
SET @subscriber = N'SUBSERVER'; 

USE [AdventureWorks]
EXEC sp_dropmergesubscription 
  @publication = N'AdvWorksSalesOrders', 
  @subscriber = @subscriber, 
  @subscriber_db = N'AdventureWorksLocal';
GO

パーティション スナップショットの準備

このパブリケーションは、サブスクリプションを初期化するときにサブスクライバがパーティション スナップショットの生成を要求できるように構成されています。ただし、そのスナップショットを初期化の前に生成することによって、事前に定義した時刻に予測的に処理コストを発生させることができます。詳細については、「パラメータ化されたフィルタを使用してマージ レプリケーションのスナップショットを作成する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。

スキーマ オプション

アーティクルのスキーマ オプションにより、データベース オブジェクトをサブスクライバにレプリケートする方法が決定されます。詳細については、「データとデータベース オブジェクトのパブリッシュ」を参照してください。サンプルで使用されるスキーマ オプションは、オブジェクトの種類とサブスクライバで必要な機能の種類に応じて決定されています。

プログラミング オブジェクト

  • データ アクセス ストアド プロシージャとユーザー定義関数については、CREATE PROCEDURE や CREATE FUNCTION などのオブジェクト作成コマンドのみがスクリプト化されています。

これは、@schema_option の値が 0x00001 の場合に相当します。

テーブル オブジェクト

  • テーブル オブジェクトはサブスクライバ側に作成されます。
  • テーブルのクラスタ化インデックスおよび非クラスタ化インデックスがレプリケートされます。
  • CHECK 制約と外部キー制約がレプリケートされます。
  • 一意なキーはレプリケートされます。
  • ユーザー定義のデータ型は、サブスクライバ側の基本データ型に変換されます。
  • テーブルのユーザー定義トリガはレプリケートされません。
  • サブスクライバにまだ存在していないスキーマは作成されます。

これは、@schema_option の値が一般的な 0x8004EF1 の場合に相当します。

サブスクリプションの状態

このサンプルでは、SubscriberMonitor クラスを呼び出すことでサブスクリプションの状態情報を表示します。このクラスはこのサンプルの一部として実装されているだけでなく、SubscriberMonitorUtility プロジェクトのスタンドアロン モニタとしても実装されています。詳細については、「サブスクライバ モニタのサンプル」を参照してください。

Web 同期

パブリケーションが作成されるときに、パブリケーションの Web 同期が有効になります。ただし、Web 同期を使用するには、Web 同期の構成ウィザードを実行して Web サーバーとサブスクライバに SSL 用の証明書をセットアップする必要があります。このサンプルでは、セキュリティ保護された SSL 接続による HTTP 基本認証を使用しています。これは Web 同期で推奨される方法です。詳細については、「Web 同期の構成」を参照してください。[Web Synchronization Options] フォームで Web 同期を有効にして、HTTP 基本認証に使用するログインとパスワードを指定すると、アプリケーションによってサブスクリプションの UseWebSynchronization プロパティが true に設定され、HTTPS プロトコルを使用して同期を実行するように InternetLogin および InternetPassword が設定されます。このサンプルを使用するときには、Web 同期に使用する Windows アカウントとパスワードを指定する必要があります。Web サーバーがパブリッシャに接続するときに、この資格情報が使用されます。InternetUrl プロパティで指定された場所にある Web サーバーに、マージ エージェントが HTTPS を使用して接続できない場合、エラーが返されます。

カスタム ビジネス ロジック

通常、販売注文は営業担当者がオフラインの時に行われるため、多くの場合、注文された製品はバックオーダーになります。企業内の方針で、注文のすべての品目が満たされるまで注文は発送されません。注文をすぐに満たすことができない場合、注文全体がバックオーダーであることを示すために SalesOrderHeader テーブルStatus 列が 3 に設定されます。このような場合、営業担当者が顧客に通知できるように、アプリケーションから営業担当者にバックオーダー状況をできる限り早く通知する必要があります。

Sales Orders サンプルでは、Microsoft.SqlServer.Replication.BusinessLogicSupport 名前空間の BusinessLogicModule クラスを実装し、カスタム ビジネス ロジックを同期プロセスに挿入します。SalesOrderDetail テーブルの行変更がパブリッシャに送られるたびに、このカスタム ロジックはパブリッシャに接続して、ProductInventory テーブルに対してその品目の在庫を確認します。注文数量が在庫総数より多いと判断された場合、SalesOrderHeader テーブルStatus 列が 3 に設定されます。次に、バックオーダー状況を表すメッセージが同期ログに記録されます。SQL Server 2005 で提供されるビジネス ロジック フレームワークを使用すると .NET Framework でサポートされる任意の機能を実装できるため、カスタム ビジネス ロジックを使用することで、簡単にダイアログ ボックスを開いたり、顧客に電子メール メッセージを自動送信することができます。

ms147881.note(ja-jp,SQL.90).gifメモ :
Web 同期を使用してサブスクリプションを同期している場合、ビジネス ロジック ハンドラによってログに書き込まれたメッセージは、サブスクライバ側には表示されません。

このカスタム ビジネス ロジックでは、行の挿入と更新を処理するために InsertHandler メソッドと UpdateHandler メソッドを実装しています。さらに、Initialize メソッドも実装されています。レプリケーションでカスタム ビジネス ロジックが初期化されると、SqlConnectionStringBuilder クラスを使用して接続文字列をプログラムから生成するためのパブリッシャの情報が、レプリケーションの際に SqlConnection オブジェクトに渡されます。

同期の状態

レプリケーション エージェントは、エージェント ジョブから起動するか (非同期)、コードから直接起動します (同期)。レプリケーション エージェントを同期的に実行する場合の大きな利点は、エージェントに組み込まれたコールバック機能を使用してエージェントの状態メッセージを取得したり、表示したりできることです。Sales Orders サンプルでは、StatusEventHandler を使用して Status イベント (コールバック) が処理され、返された StatusEventArgs オブジェクトの状態メッセージが表示されます。同期の推定進行状況を示す整数値も返されます。これは進行状況バーを使用してユーザーに表示されます。バックグラウンド同期では [Subscription Status] フォームの情報が古くなる場合があるため、販売担当者は [Refresh] ボタンをクリックして最新のセッションを読み込むことができます。

接続時の同期

Sales Orders サンプルでは、非接続環境でデータを同期するための、マージ レプリケーションの強度を示しています。しかし、本社での会議のときなど、インターネット接続をすぐに利用できる状況もあります。このサンプルでは、接続環境で継続的に同期することもできます。[Advanced Options][Synchronize when connected] オプションを有効にすると、Timer コントロールが有効になります。アプリケーション構成ファイルであらかじめ設定した間隔でタイマ イベントが発生すると、アプリケーションは Windows Management Instrumentation (WMI) プロバイダにクエリを実行して (System.Management 名前空間を使用)、コンピュータに接続があるかどうかを確認します。接続がある場合、サブスクリプションがバックグラウンドで同期されます。データ エントリの問題を避けるために、サンプルでは [Sales Orders] 以外のフォームにフォーカスがある場合、バックグラウンド同期が許可されません。このサンプルで使用している WMI プロパティは Microsoft Windows 2000 では使用できないため、Windows 2000 コンピュータでは [Synchronize when connected] メニュー オプションが無効になります。

ms147881.note(ja-jp,SQL.90).gifメモ :
このサンプルでは、接続時の同期が 1 つのスレッドに実装されています。この機能は、個別のスレッドに実装するのが最適です。個別のスレッドでレプリケーション エージェントを実行する場合は、BackgroundWorker クラスの使用を検討してください。

配置

サブスクリプション データベース内のデータにアクセスするために使用される、ストアド プロシージャ、ユーザー定義型、ユーザー定義関数などのプログラミング オブジェクトはすべて、パブリッシャのパブリケーション データベースでのみ作成され、アーティクルとしてサブスクライバにパブリッシュされます。Sales Orders サンプルを営業担当者のコンピュータで最初に実行すると、アプリケーションはパブリッシャに接続し、初期スナップショットをダウンロードして適用します。このスナップショットには、プログラムのデータ アクセス プログラミング オブジェクトが含まれています。スナップショットが正常に適用されると、[Sales Orders] フォーム内のローカル データが読み込まれ、アプリケーションを使用してデータを入力できるようになります。

Visual Studio 2005 の新しい ClickOnce 配置機能を使用して、アプリケーション インストール パッケージを Web サイトにパブリッシュできます。.NET Framework 2.0 が既にインストールされている場合、サブスクライバではこの ClickOnce 配置サイトからアプリケーションをダウンロードしてインストールし、オフサイトの場所から仮想プライベート ネットワーク (VPN) を介してリモートでサブスクリプションを初期化できます。さらに、ClickOnce では Web サイトからサービスの更新プログラムを配信できます。ClickOnce 配置の詳細については、Visual Studio 2005 のドキュメントで「ClickOnce Deployment Overview (ClickOnce の配置の概要)」を参照してください。

このサンプルのインストールと実行の手順については、「Sales Orders サンプル (マージ レプリケーション用)」を参照してください。

ユーザー インターフェイスの要素

Sales Order サンプルでは、次のユーザー インターフェイス要素を実装しています。

要素名 説明

[Sales Orders] フォーム

メインのユーザー インターフェイス要素です。アプリケーションのエントリ ポイントです。このフォーム上で、販売担当者は [Customer] コンボ ボックスから顧客を選択し、[Order] コンボ ボックスから注文を選択して、注文を処理します。[Edit] ボタンをクリックすると、選択した注文が [Edit Order] フォームに表示され、編集できるようになります。[New] ボタンをクリックすると、空の [Edit Order] フォームが表示されます。

[Edit Order] フォーム

営業担当者はこのフォームを使用して注文を編集します。[Order Items] グリッドで品目を編集できます。[Add] ボタンをクリックすると、このグリッドに新しい品目を追加して保存できます。品目を選択して [Delete] ボタンをクリックすると、グリッドから品目が削除されます。注文が完成したら、[Save] ボタンをクリックすると変更がデータベースにコミットされます。

[Synchronize Sales Data] フォーム

このフォームを呼び出すことで、サブスクリプションの初期化、同期、再初期化を行います。マージ エージェントからの状態メッセージが [Synchronization Status] フィールドに表示され、進行の度合いを示す進行状況バーが表示されます。

[Merge Subscriber Monitor] フォーム

このフォームは独立したアセンブリに実装されています。このフォームは [Advanced Options] メニューから呼び出されます。MergeSubscriberMonitor を使用してサブスクリプション情報を表示します。詳細については、「サブスクライバ モニタのサンプル」を参照してください。

[Web Synchronization Options] フォーム

このフォームは、[Advanced Options] メニューで [Web Synchronization Options] を選択すると呼び出されます。ここでは、サブスクリプションの Web 同期設定を管理します。この設定をアプリケーションで管理するのではなく、MergePullSubscription オブジェクトを使用して、Web 同期オプションを格納し、サブスクリプション メタデータから Web 同期オプションを取得します。このサンプルでは、SSL 接続による HTTP 基本認証を使用して Web サーバーに渡される Windows ログインとパスワードを指定する必要があります。詳細については、この後の「サンプルの注意点」の「Web 同期」を参照してください。

[Logon User] フォーム

このフォームは、サブスクリプションが作成されたときに呼び出されます。CreateSyncAgentByDefaulttrue に設定してサブスクリプションを作成する場合、Mergepullsubscription オブジェクトに有効な Windows ログインとパスワードを指定する必要があります。このサンプルでは Web 同期設定を格納するためにエージェント関連のメタデータを作成する必要があるため、この操作が必要になります。CreateSyncAgentByDefaultfalse の場合、エージェント ジョブは作成されず、Web 同期やその他のサブスクリプション メタデータはアプリケーションによりメンテナンスする必要があります。詳細については、この後の「サンプルの注意点」の「Web 同期」を参照してください。SQL Server 2005 Express Edition サブスクライバの場合、このエディションでは SQL Server エージェントがサポートされず、エージェント ジョブ自体が作成されませんが、メタデータは作成されます。

[Synchronize] メニュー

このメニューの項目により、同期セッションの開始と接続時の同期の有効化を行います。

[Advanced Options] メニュー

このメニューの項目により、サブスクリプションの再初期化、Web 同期の有効化、[Merge Subscriber Monitor] フォームの表示を行います。

サンプルの注意点

ここでは、このサンプルにおける設計上の注意点、危険性、潜在的な問題点について説明します。

SQL Server Compact Edition サブスクライバのサポート

このレプリケーション トポロジにおける設計上の主な注意事項は、パブリケーションが SQL Server 2005 Compact Edition サブスクライバをサポートしていることです。他のエディションの SQL Server 2005 を実行するサブスクライバでは、ネイティブ モードのスナップショットを使用できますが、SQL Server 2005 Compact Edition ではキャラクタ モードのデータのスナップショットのみがサポートされるため、ネイティブ モードのスナップショットを使用する場合には存在しない制限がパブリケーションに追加されます。制限には、次のようなものがあります。

  • スナップショットを適用する前後の、Transact-SQL スクリプトの実行。スクリプトの実行により、実行時に SQL Server 管理オブジェクト (SMO) のアセンブリを読み込む代わりに、Transact-SQL を使用してサブスクライバ上でローカル データベースや任意のユーザー定義型またはスキーマを作成することができます。
  • 計算列。AdventureWorks 販売注文スキーマの一部のキー列がレプリケートできなくなります。これには、SalesOrderDetail テーブルLineTotal と、SalesOrderHeader テーブルTotalDue および SalesOrderNumber が含まれます。この情報をユーザーに表示するには、アプリケーションで計算を実行する必要があります。
  • 論理レコードの使用。論理レコードを使用すると、SalesOrderHeader テーブルに属している行を使用せずに、SalesOrderDetail テーブルの販売品目がパブリッシャに送られなかったことを確認できます。しかし、SQL Server 2005 Compact Edition サブスクライバをサポートする場合、論理レコードは使用できません。

マージ レプリケーションのパフォーマンス

AdventureWorks サンプル データベースは SQL Server を使用して実装される多くの実稼働データベースをエミュレートするように設計されているため、スキーマは非常に複雑で、データが高度に正規化されています。正規化が高度になったことから、インデックスに依存する操作は強化されていますが、マージ レプリケーションのパフォーマンスに悪影響が及ぶ可能性があります。このサンプルでは、パラメータ化された行フィルタを Employee テーブルから SalesOrderDetail テーブルに拡張するために、5 個の結合フィルタが必要です。SQL Server 2005 には、パラメータ化された行フィルタのパフォーマンスを最適化する事前計算済みパーティションなどの新機能が備えられています。ただし、マージ レプリケーションのパフォーマンスが問題になる状況では、パブリッシュされるテーブルを非正規化して結合フィルタの数を 2 つ以下にする必要があります。詳細については、「マージ レプリケーション パフォーマンスの向上」を参照してください。

Web 同期

パブリッシャへの直接接続を使用して、ユーザーが Web 同期と通常の同期をシームレスに切り替えられるようにする機能が、サンプルのアーキテクチャに影響しています。このサンプルでは MergePullSubscription クラスを使用して Web 同期に必要なプロパティを安全に格納し、取得します。これにより、アプリケーション ロジックも単純化されます。MergePullSubscription クラスからこの機能を取得するには、CreateSyncAgentByDefault プロパティを true に設定してサブスクリプションを作成する必要があります。MSsubscription_properties テーブルの行を使用すると、これらのプロパティを MergePullSubscription オブジェクトに設定できるだけでなく、サブスクリプションに対するエージェント ジョブも作成されます。このアプリケーションでは常に同期が直接開始され、SQL Server エージェントを使用しないため、このジョブが使用されることはありません。このエディションでは SQL Server エージェントがサポートされていないため、SQL Server 2005 Express Edition サブスクライバにはエージェント ジョブが作成されませんが、必要なメタデータは作成されます。Create メソッドが呼び出され、CreateSyncAgentByDefaulttrue の場合、SynchronizationAgentProcessSecurity 情報を指定する必要があります。このため、サブスクリプションの作成時に [Logon User] フォームが表示されます。この資格情報は SQL Server によって保存されますが、使用されることはありません。代わりに、ユーザーがサンプルを実行したコンテキストを使用してマージ エージェントが起動されます。

このサンプルは、HTTP 基本認証を使用する Web 同期中にサブスクライバから Web サーバーに接続する場合を除いて、すべてのサーバー接続に統合認証を使用するように設計されています。統合認証を Web 同期に使用することはお勧めしません。実際の運用時には、Web 同期に使用される IIS サーバーはパブリッシャやディストリビュータ以外のコンピュータに配置します。Windows での権限借用の制限により、Web サーバーに渡される基本認証資格情報がパブリッシャのログインと同じである必要があります。

ms147881.note(ja-jp,SQL.90).gifメモ :
Web 同期では、アップロードのみの同期やダウンロードのみの同期はサポートされません。Web 同期を有効にすると、[Only Upload Data] メニュー項目が無効になります。

ユーザー定義型

AdventureWorks には多数のユーザー定義型が含まれており、基本データ型としてサブスクライバにレプリケートされます。ユーザー定義型が共通言語ランタイム (CLR) 型の場合、CLR 型としてレプリケートされます。

パブリッシュされる AdventureWorks オブジェクト

次に示す AdventureWorks テーブル、データ アクセス ストアド プロシージャ、およびユーザー定義関数が、マージ レプリケーション トポロジ内でアーティクルとしてパブリッシュされます。

オブジェクト名 オブジェクトの種類 解説

Customer

テーブル

詳細については、「Customer テーブル (AdventureWorks)」を参照してください。

CustomerAddress

テーブル

詳細については、「CustomerAddress テーブル (AdventureWorks)」を参照してください。

Employee

テーブル

ダウンロード専用アーティクル。LoginID に基づくパラメータ化されたクエリを使用して、各営業担当者のサブスクリプション用にデータをパーティション分割します。詳細については、「Employee テーブル (AdventureWorks)」を参照してください。

Product

テーブル

ダウンロード専用アーティクル。詳細については、「Product テーブル (AdventureWorks)」を参照してください。

ProductCategory

テーブル

ダウンロード専用アーティクル。詳細については、「ProductCategory テーブル (AdventureWorks)」を参照してください。

ProductDescription

テーブル

ダウンロード専用アーティクル。詳細については、「ProductDescription テーブル (AdventureWorks)」を参照してください。

ProductInventory

テーブル

詳細については、「ProductInventory テーブル (AdventureWorks)」を参照してください。

ProductListPriceHistory

テーブル

ダウンロード専用アーティクル。詳細については、「ProductListPriceHistory テーブル (AdventureWorks)」を参照してください。

ProductModel

テーブル

ダウンロード専用アーティクル。詳細については、「ProductModel テーブル (AdventureWorks)」を参照してください。

ProductModelProductDescriptionCulture

テーブル

ダウンロード専用アーティクル。詳細については、「ProductModelProductDescriptionCulture テーブル (AdventureWorks)」を参照してください。

ProductSubcategory

テーブル

ダウンロード専用アーティクル。詳細については、「ProductSubcategory テーブル (AdventureWorks)」を参照してください。

SalesOrderDetail

テーブル

詳細については、「SalesOrderDetail テーブル (AdventureWorks)」を参照してください。

SalesOrderHeader

テーブル

詳細については、「SalesOrderHeader テーブル (AdventureWorks)」を参照してください。

ShipMethod

テーブル

ダウンロード専用アーティクル。詳細については、「ShipMethod テーブル (AdventureWorks)」を参照してください。

SpecialOffer

テーブル

ダウンロード専用アーティクル。詳細については、「SpecialOffer テーブル (AdventureWorks)」を参照してください。

Store

テーブル

詳細については、「Store テーブル (AdventureWorks)」を参照してください。

StoreContact

テーブル

詳細については、「StoreContact テーブル (AdventureWorks)」を参照してください。

ufnGetAccountingStartDate

ユーザー定義スカラ値関数

AdventureWorks 関数。

ufnGetAccountingEndDate

ユーザー定義テーブル値関数

AdventureWorks 関数。

udfGetStatusTextTable

ユーザー定義関数

状態の値に関するテキストの説明を返す、テーブル値関数。

uspSalesOrderDetailDeleteCommand

ストアド プロシージャ

アプリケーションで SalesOrderDetail テーブルから行を削除するときに使用されます。

uspSalesOrderDetailInsertCommand

ストアド プロシージャ

アプリケーションで SalesOrderDetail テーブルから行を挿入するときに使用されます。

uspSalesOrderDetailSelectCommand

ストアド プロシージャ

アプリケーションで SalesOrderDetail テーブル (AdventureWorks)にクエリを実行するときに使用されます。

uspSalesOrderDetailUpdateCommand

ストアド プロシージャ

アプリケーションで SalesOrderDetail テーブルを更新するときに使用されます。

uspSalesOrderHeaderDeleteCommand

ストアド プロシージャ

アプリケーションで SalesOrderHeader テーブル (AdventureWorks)から行を削除するときに使用されます。

uspSalesOrderHeaderInsertCommand

ストアド プロシージャ

アプリケーションで SalesOrderHeader テーブルから行を挿入するときに使用されます。

uspSalesOrderHeaderSelectCommand

ストアド プロシージャ

アプリケーションで SalesOrderHeader テーブル (AdventureWorks)にクエリを実行するときに使用されます。

uspSalesOrderHeaderUpdateCommand

ストアド プロシージャ

アプリケーションで SalesOrderHeader テーブルを更新するときに使用されます。

uspStoreSelectCommand

ストアド プロシージャ

アプリケーションで、指定された店舗の顧客のクエリを実行するときに使用されます。

uspCheckProductInventory

ストアド プロシージャ

カスタム ビジネス ロジックで注文状態をバックオーダーに変更し、ログに記録されるメッセージを返すときに使用されます。

変更履歴

リリース 履歴

2006 年 7 月 17 日

新しい内容 :
  • 接続時の同期機能が 1 つのスレッドに実装されていることを明確にするために、注釈を追加しました。

参照

概念

Sales Orders サンプル シナリオ

ヘルプおよび情報

SQL Server 2005 の参考資料の入手