時間がたつにつれて、ほとんどのデータベース アプリケーションは成長し、複雑になり、より多くのユーザーをサポートする必要があります。 Microsoft Office Access アプリケーションの寿命をある時点で、パフォーマンス、拡張性、可用性、セキュリティ、信頼性、および回復性を最適化するために、Microsoft SQL Server データベースへのアップサイジングを検討する必要がある場合があります。
この記事の内容
Access データベースのMicrosoft Office化について
アップサイジングは、一部またはすべての データベース オブジェクト を Access データベースから新規または既存の SQL Server データベースまたは新しい Access プロジェクト (.adp) に移行するプロセスです。
データベースを新しいデータベースにアップサイジングするSQL Server
-
高いパフォーマンスと拡張性 多くの場合、SQL Server Access データベースよりもパフォーマンスが向上します。 SQL Serverサイズが 2 GB の Access データベースの現在の制限をはるかに超える、非常に大きなサイズのデータベースもサポートされます。 最後に、SQL Server はクエリを並列処理し (1 つのプロセス内で複数のネイティブ スレッドを使用してユーザー要求を処理する) と、追加のユーザーが追加される際の追加のメモリ要件を最小限に抑えることにより、非常に効率的に機能します。
-
可用性の向上 SQL Serverを使用すると、データベースを使用しながら、データベースの動的バックアップ (増分バックアップまたは完了バックアップ) を実行できます。 その結果、データをバックアップするために、ユーザーにデータベースへのアクセスを強制的に終了してもらう必要はありません。
-
セキュリティの強化 信頼された接続を使用すると、SQL Server と Windows システムのセキュリティを統合して、両方のセキュリティ システムの最適な機能を採用して、ネットワークとデータベースへの統合アクセスを 1 つ提供できます。 これにより、複雑なセキュリティ スキームを管理しやすくなります。
-
即時の回復性 システム障害 (オペレーティング システムのクラッシュや停電など) の場合、SQL Server には、データベース管理者による操作を行う必要なく、データベースを最後の一貫性状態に数分で回復する自動回復メカニズムがあります。
-
サーバー ベースの処理 クライアントSQL Server構成でデータベース クエリを使用すると、クライアントに結果を送信する前にサーバー上でデータベース クエリを処理することで、ネットワーク トラフィックを減らします。 通常、特に大きなデータ セットを操作する場合は、サーバーで処理を行う方がはるかに効率的です。
アプリケーションでは、ユーザー定義関数、ストアド プロシージャ、トリガーを使用して、クライアントではなく、アプリケーション ロジック、ビジネス ルールとポリシー、複雑なクエリ、データの入力規則、参照整合性コードをサーバー上で一元管理して共有することもできます。
アップサイズする方法
アップサイジング ウィザードでは、データベース オブジェクトとデータベース に含まれるデータが Access データベースから新しいデータベースまたは既存のデータベースSQL Serverします。
アップサイジング ウィザードを使用するには、次の 3 つの方法があります。
-
クライアント/サーバー アプリケーションを作成するために、Access データベースから Access プロジェクトにのすべてのデータベース オブジェクトをアップサイズします。 この方法では、アプリケーションを変更し、コードや複雑なクエリを変更する必要があります。
-
Access データベースからデータベースへのデータまたはデータ定義のみをSQL Serverします。
-
Access データベースのフロント エンドを SQL Serverデータベースのバック エンドに作成して、データベースを作成 フロントエンド/バックエンド アプリケーション。 この方法では、コードが引き続き Access データベース エンジン (ACE) を使用しているので、アプリケーションの変更はほとんど必要とされません。
Access データベースをアップサイズする前に
Access データベースを新しいデータベースまたは Access SQL Serverにアップサイズする前に、次の手順を実行します。
-
データベースをバックアップする アップサイジング ウィザードでは、Access データベースからデータオブジェクトやデータベース オブジェクトは削除されませんが、アップサイズする前に Access データベースのバックアップ コピーを作成してください。
-
十分なディスク領域があることを確認する アップサイズされたデータベースを含む十分なディスク領域がデバイスに必要です。 アップサイジング ウィザードは、使用可能なディスク領域が十分ある場合に最適です。
-
一意のインデックスを作成する Access で更新可能な一意のインデックスをリンク テーブルに設定する必要があります。 アップサイジング ウィザードでは、既存の一意のインデックスをアップサイズできますが、存在しないインデックスを作成することはできません。 テーブルを更新する場合は、アップサイジングする前に、各 Access テーブルに一意のインデックスを追加してください。
-
データベースに対する適切なアクセス許可を自分SQL Serverする
-
既存のデータベースをアップサイズするには、CREATE TABLE と CREATE DEFAULT 権限が必要です。
-
新しいデータベースを作成するには、CREATE DATABASE 権限と、マスター データベース内のシステム テーブルに対する SELECT 権限が必要です。
-
Access 2007 アップサイジング ウィザードは、2000 および Microsoft SQL Server 2005 で動作SQL Serverされています。
アップサイジング ウィザードを使用する
-
[データベース ツール] タブの[データの移動]グループで 、[データの移動] SQL Server。
アップサイジング ウィザードが起動します。
手順 1: 既存のデータベースまたは新しいデータベースにアップサイズすることを選択する
ウィザードの最初のページで、Access データベースを既存の SQL Server データベースにアップサイズするか、新しいデータベースデータベースをSQL Serverします。
-
既存のデータベースを使用する このオプションを選び、[次へ] をクリックすると、[データ ソースの選択] ダイアログ ボックスが表示され、既存のデータベースへの ODBC 接続をSQL Serverできます。
ODBC データ ソースについて
データ ソースとは、データにアクセスするために必要な接続情報と組み合わせたデータのソースです。 データ ソースの例としては、Access、SQL Server、Oracle RDBMS、スプレッドシート、テキスト ファイルがあります。 接続情報の例には、サーバーの場所、データベース名、ログオン ID、パスワード、データ ソースに接続する方法を説明するさまざまな ODBC ドライバー オプションなどがあります。
ODBC アーキテクチャでは、アプリケーション (Access や Microsoft Visual Basic プログラムなど) が ODBC ドライバー マネージャーに接続され、特定の ODBC ドライバー (Microsoft SQL ODBC ドライバーなど) を使用してデータ ソース (この場合は SQL Server データベース) に接続します。 Access では、ODBC データ ソースを使用して、組み込みのドライバーがない Access の外部のデータ ソースに接続します。
これらのデータ ソースに接続するには、次の操作を行う必要があります。
-
データ ソースが含まれているコンピューターに、適切な ODBC ドライバーをインストールします。
-
Microsoft Windows レジストリまたは DSN ファイルに接続情報を保存するために ODBC データ ソース アドミニストレーターを使用するか、接続情報を ODBC ドライバー マネージャーに直接渡すための Visual Basic コードの接続文字列を使用して、データ ソース名 (DSN) を定義します。
マシン データ ソース
コンピューター データ ソースは、ユーザー定義の名前を持つ特定のコンピューターの Windows レジストリに接続情報を格納します。 マシン データ ソースは、それらが定義されているコンピューター上でのみ使用できます。 ユーザーとシステムの 2 種類のコンピューターのデータ ソースがあります。 ユーザー データ ソースは、現在のユーザーのみが使用でき、そのユーザーにのみ表示されます。 システム データ ソースは、コンピューター上のすべてのユーザーが使用でき、コンピューターのすべてのユーザーとシステム全体のサービスに表示されます。 ログオンしているユーザーのみがマシン データ ソースを表示でき、リモート ユーザーが別のコンピューターにコピーすることはできないために、マシン データ ソースはセキュリティを強化する場合に特に便利です。
ファイル データ ソース
ファイル データ ソース (DSN ファイルとも呼ばれます) は、Windows レジストリではなく、テキスト ファイルに接続情報を保存し、通常はマシン データ ソースより柔軟に使用できます。 たとえば、適切な ODBC ドライバーを使用している任意のコンピューターにファイル データ ソースをコピーして、アプリケーションが使用しているすべてのコンピューターに一貫した正確な接続情報を使用できます。 または、単一のサーバー上にファイル データ ソースを配置し、ネットワーク上の多くのコンピューターの間でそれを共有し、1 つの場所で簡単に接続情報を維持することができます。
ファイル データ ソースは共有できないようにすることもできます。 共有できないファイル データ ソースは、1 台のコンピューター上に存在し、マシン データ ソースをポイントします。 共有不能なファイル データ ソースを使用して、ファイル データ ソースから既存のマシン データ ソースにアクセスすることができます。
接続文字列
モジュールでは、接続情報を指定する書式設定された接続文字列を定義できます。 接続文字列は ODBC ドライバー マネージャーに接続情報を直接渡し、システム管理者またはユーザーがデータベースを使用する前に DSN を最初に作成する必要が生じ、アプリケーションを簡素化するのに役立ちます。
-
-
新しいデータベースを作成する このオプションを選択し、[次へ] をクリックすると、新しいデータベースデータベースに関する情報を入力するSQL Serverされます。
-
このSQL Serverにどのような情報を使用しますか? 使用するサーバーの名前を入力します。
-
セキュリティ接続を使用する 信頼できる接続を使用できます。つまり、SQL Server Windows オペレーティング システムのセキュリティと統合して、ネットワークとデータベースに単一のログオンを提供できます。
-
ログイン ID とパスワード 信頼できる接続を使用しない場合は、サーバーで CREATE DATABASE 権限を持つアカウントのログオン ID とパスワードを入力します。
-
新しいデータベースに名前を付SQL Server。 新しいデータベースの名前をSQL Serverします。 既存のデータベース名と競合する場合は名前が変更され、番号付きサフィックス (mydatabase 1 など) が追加されます。
-
手順 2: アップサイズするテーブルを選択する
この手順では、データベースにアップサイズする Access SQL Serverします。 アップサイズするテーブルを選択し、矢印ボタンを使用して [エクスポート先] リストSQL Serverします。 または、テーブルをダブルクリックして一覧から別のリストに移動できます。
[ 使用可能なテーブル] リストには、データベースに既に存在SQL Serverテーブルを除くすべてのリンク テーブルSQL Serverされます。 アップサイジング用に選択された SQL Server データベースを指すリンク テーブルは、[SQL Server にエクスポート] ボックスに自動的に表示され、削除することはできません。 非表示のテーブルやシステム テーブルなど、 ナビゲーション ウィンドウ に現在表示されていないテーブルも除外されます。
ヒント: "_local" で終わる名前を持つテーブルは、既にアップサイジングされているテーブルのアップサイジングを防ぐために、使用可能なテーブルの一覧から除外されます。 これらのテーブルのサイズを変更し直す場合は、アップサイジング ウィザードを実行する前に、サフィックス "_local。
手順 3: アップズする属性とオプションを指定する
この手順では、データベースにアップサイズするテーブルのSQL Serverします。 既定では、すべての属性が既定でアップサイジング用に選択されます。
注: 既定では、アップサイジング ウィザードは Access フィールド名を法的なフィールド名SQL Serverに変換し、Access のデータ型を同等のデータ型SQL Serverします。
どのテーブル属性をアップサイズしますか?
次の表に、アップサイズ設定できる属性と、アップサイジング ウィザードでそれぞれどのように処理されるのかについて説明します。
属性 |
選択されている場合のアクション |
|||||||||||||||
インデックス |
アップサイジング ウィザードでは、すべてのインデックスがアップサイズされます。 アップサイジング ウィザードでは、Access の主キーがインデックスにSQL Serverされ、そのインデックスが主キーとしてSQL Serverされます。 アップサイジング テーブルを Access SQL Serverにリンクする場合、アップサイジング ウィザードでは、プレフィックス "aaaaa" もインデックス名に追加されます。 これは、使用可能なインデックスの一覧で最初にアルファベット順のインデックスが主キーとして選択され、"aaaaa" プレフィックスによって適切なインデックスが選択されるためです。 その他のすべてのインデックスには、その名前が保持されます。ただし、不正な文字が "_" 文字で置き換えられる場合を除く。 一意のインデックスと非一意の Access インデックスは、一意のインデックスと一意ではないインデックスSQL Serverされます。 Access で更新可能な一意のインデックスをリンク テーブルに設定する必要があります。 アップサイジング ウィザードでは、既存の一意のインデックスをアップサイズできますが、存在しないインデックスを作成することはできません。 テーブルをアップサイジングした後にテーブルのデータを更新する場合は、アップサイジングする前に、各 Access テーブルに一意のインデックスを追加してください。 |
|||||||||||||||
入力規則 |
アップサイジング ウィザードでは、更新と挿入のトリガーとして次の情報がアップサイズされます。
トリガーとは、テーブルに関連付SQL一連の Transact-SQL Serverです。 テーブルには、更新、挿入、および削除の 3 つのトリガーがあります。1 つは、テーブル内のデータを変更できるコマンドごとに 1 つになります。 コマンドが実行されると、トリガーが自動的に実行されます。 アップサイジング ウィザードでは、SQL Server ルールではなくトリガーを使用してフィールド レベルの検証を適用します。SQL Server ルールではカスタム エラー メッセージを表示できないので、 各入力規則には、必ずしもトリガーと一対一の対応が存在するとは限りません。 各入力規則は複数のトリガーの一部になり、各トリガーには複数の入力規則の機能をエミュレートするコードが含まれている場合があります。 Access フィールドのRequired プロパティを true に設定すると、ユーザーはレコードを挿入して必要なフィールド null のままにしたり (フィールドに既定のバインドがない場合)、レコードを更新するときにフィールドを null にしたりすることはできません。 必須フィールドは、フィールドに Null 値を許可しないフィールドにSQL Server。 ValidationText/エラーメッセージ Access データベースの 入力規則テキスト プロパティは、Access プロジェクトの入力規則テキスト プロパティに変換 されます。 これにより、実行時に制約違反が発生した場合に、Access に対応するエラー メッセージを表示できます。 |
|||||||||||||||
既定値 |
アップサイジング ウィザードでは、すべての既定値プロパティが American National Standards Institute (ANSI) の既定のオブジェクトにアップサイズされます。 |
|||||||||||||||
テーブル リレーションシップ |
アップサイジング ウィザードでは、すべてのテーブル リレーションシップがアップサイズされます。 更新、挿入、または削除トリガーを使用するか、または宣言参照整合性 (DRI) を使用して、テーブルのリレーションシップと参照整合性をアップサイズする方法を決定できます。 DRI 関数は、基本テーブルの主キー制約 (一対多リレーションシップの "一" 側) と外部テーブルの外部キー制約 (通常は一対多リレーションシップの "多" 側) を定義することで、Access の参照整合性と同じように動作します。
|
どのようなデータ オプションを含めるか
-
テーブルにタイムスタンプ フィールドを追加する SQL Serverはタイムスタンプ フィールドを使用して、一意の値フィールドを作成し、レコードが更新されるたびにこのフィールドを更新することで、レコードが変更された (変更された時点ではなく) 示します。 リンク テーブルの場合、Access はタイムスタンプ フィールドの値を使用して、レコードを更新する前にレコードが変更されたかどうかを判断します。 一般に、タイムスタンプ フィールドは最高のパフォーマンスと信頼性を提供します。 タイムスタンプ フィールドがない場合SQL Serverレコード内のすべてのフィールドをチェックして、レコードが変更されたかどうかを判断し、パフォーマンスを低下させる必要があります。
次の表では、この一覧で使用できる設定について説明します。
設定 |
説明 |
はい、ウィザードで決定を行います |
元の Access テーブルに浮動小数点 (単一または二重)、メモ型、または OLE オブジェクト フィールドが含まれている場合、アップサイジング ウィザードでは、それらのフィールドの結果の SQL Server テーブルに新しいタイムスタンプ フィールドが作成されます。 |
はい、常に |
アップサイジング ウィザードでは、含まれるフィールドの種類に関係なく、すべてのアップサイジング テーブルにタイムスタンプ フィールドが作成されます。 これにより、メモ型、OLE オブジェクト型、または浮動小数点型のフィールドは含めなのに、他の種類のフィールドを含む Access テーブルのパフォーマンスが向上します。 |
いいえ、しない |
アップサイジング ウィザードでは、タイムスタンプ フィールドはテーブルに追加されません。 |
重要: リンクされた SQL Server テーブルでは、メモ型または OLE オブジェクト型のフィールドが変更されたかどうかを確認できません。これらのフィールドのサイズは MB 単位で、比較はネットワークを大量に消費し、時間がかかる可能性があります。 そのため、テキストフィールドまたは画像フィールドだけが変更され、タイムスタンプ フィールドがない場合は、その変更が上書きされます。 また、浮動小数点型フィールドの値が変更されていない場合に表示される場合があります。そのため、タイムスタンプ フィールドがない場合、レコードが変更されていない場合は、Access によって変更されたと判断される場合があります。
-
テーブル構造のみを作成し、データをアップサイズしない アップサイジング ウィザードでは、すべてのデータが既定SQL Serverにアップサイズされます。 [テーブル構造の 作成 のみ] を選択した場合は、[データ構造を大きくしない] チェック ボックスをオンにすると、データ構造だけがアップサイズされます。
手順 4: アプリケーションをアップサイズする方法を選択する
ウィザードの次のページで、Access データベース アプリケーションをアップサイズする 3 つの方法のいずれかを選択できます。 [ どのアプリケーションを変更しますか?]で、次のいずれかのオプションを選択します。
-
新しい Access クライアント/サーバー アプリケーションを作成する このオプションを選択すると、アップサイジング ウィザードによって新しい Access プロジェクトが作成されます。 アップサイジング ウィザードでは、名前の入力を求めるメッセージが表示され、既定は現在の Access データベース名に設定され、"CS" サフィックスが追加され、既存の Access データベースと同じ場所にプロジェクトが保存されます。
アップサイジング ウィザードでは、Access プロジェクト ファイルが作成され、Access データベースから Access プロジェクトにのすべてのデータベース オブジェクトがアップサイズされます。 パスワードとユーザー ID を保存しない場合、Access プロジェクトを初めて開いた場合は、[データ リンクのプロパティ] ダイアログ ボックスが表示され、SQL Server データベースに接続できます。
-
テーブルSQL Server既存のアプリケーションにリンクする このオプションを選択すると、アップサイジング ウィザードによって Access データベースが変更され、クエリ、フォーム、レポート、データ アクセス ページで Access データベースのデータではなく、新しい SQL Server データベースのデータが使用されます。 アップサイジング ウィザードでは、アップサイズする Access テーブルの名前が"_local。 たとえば、Employees という名前のテーブルをアップサイズすると、テーブルの名前Employees_local Access データベースに表示されます。 次に、アップサイジング ウィザードでは、Employees という名前のSQL Serverテーブルが作成されます。
注: アップサイジング操作が完了すると、"_local" サフィックスで名前が変更されたテーブルは使用されなくなりました。 ただし、アップサイジングが成功したと確認するまでは、ローカル テーブルを保持する必要があります。 後日、ローカル テーブルを削除して、Access データベースのサイズを小さくすることができます。 テーブルを削除する前に、必ずデータベースをバックアップしてください。
元の Employees テーブルに基づくクエリ、フォーム、レポート、データ アクセス ページでは、リンクされた [従業員] テーブルSQL Server使用されます。 元のローカル テーブルのフィールドのプロパティの多くは、新しいローカル テーブル (Description、Caption、Format、InputMask、DecimalPlaces など) によって継承されます。
-
アプリケーションを変更する必要はありません このオプションは、データを SQL Server データベースにのみコピーし、既存の Access データベース アプリケーションに他の変更を加えない場合に選択します。
パスワードとユーザー ID を保存する 既定では、アップサイジング ウィザードは、既存のアプリケーションでリンク テーブルを作成するか、ユーザー名とパスワードを保存せずに Access プロジェクトを作成します。 つまり、ユーザーがデータベースにログオンする度に、ユーザー名とパスワードの入力を求SQL Serverされます。
[パスワードとユーザー ID を保存する] を選SQL Serverログインせずにデータベースに接続できます。 [新しい Access クライアント/サーバー アプリケーションの作成] を選択した場合、Access プロジェクトでは、OLE DB 接続文字列にユーザー名パスワードが保存されます。
注: MSysConfテーブルでパスワードの保存を拒否するようにSQL Serverテーブルが構成されている場合、[アプリケーションの変更なし] オプションでは、このオプションは無効になります。
アップサイジング ウィザード レポート
[完了]をクリックすると、アップサイジング ウィザードによって作成されたオブジェクトの詳細な説明を示すレポートが作成され、プロセス中に発生したエラーが報告されます。 アップサイジング ウィザードでは、レポートが印刷プレビューに表示され、XPS ファイルや PDF ファイルなどのレポートを印刷または保存できます。 [印刷プレビュー] ウィンドウを閉じると、レポートは Access オブジェクトとして保存されません。
アップサイジング ウィザード レポートには、次の情報が含まれます。
-
どのテーブル属性を選択してアップサイズを選択し、どのようにアップサイズしたかを含む、パラメーターのアップサイズ。
-
名前、データ型、インデックス、入力規則、既定値、トリガー、タイム スタンプが追加されたかどうかの Access 値と SQL Server 値の比較などのテーブル情報。
-
データベースまたはトランザクション ログの完全なエラー、不適切なアクセス許可、作成されていないデバイスまたはデータベース、テーブル、既定、または入力規則がスキップされた、リレーションシップが適用されていない、クエリがスキップされた (SQL Server 構文に変換できないため)、フォームとレポートの コントロール と レコード ソース の変換エラーなど、発生したエラー。
データベース オブジェクトのアップアップ
次のデータオブジェクトとデータベース オブジェクトがアップアップされます。
-
データとデータ型 Access データベースのすべてのデータ型は、データベース内で同等のデータ型SQL Server。 このウィザードでは、すべての文字列値に Unicode 文字列識別子を追加し、すべてのデータ型に Unicode n プレフィックスを追加することで、Access データベーステキストを Unicode に変換します。
-
クエリ
-
ORDER BY 句またはパラメーターを持つクエリを選択すると、ビューに変換されます。
-
アクション クエリはストアド プロシージャ アクション クエリに変換されます。 パラメーター宣言コードの後に SET NOCOUNT ON が追加され、ストアド プロシージャが実行されます。
-
パラメーターまたは ORDER BY 句を使用するテーブル (ベース クエリとも呼ばれる) のみを参照するクエリを選択すると、ユーザー定義関数に変換されます。 必要に応じて、ORDER BY 句を含むクエリに TOP 100 PERCENT 句が追加されます。
-
名前付きパラメーターを使用するパラメーター クエリは、Access データベースで使用される元のテキスト名を保持し、ストアド プロシージャまたはインラインユーザー定義関数に変換されます。
注: SQL パススルー クエリ、データ定義クエリ、クロス集計クエリなど、アップサイズしなかったクエリを手動で変換する必要がある場合があります。 また、入れ子が深すぎるクエリを手動でアップサイズする必要がある場合もあります。
-
-
フォーム、レポート、コントロール SQL Source、ControlsSource、およびフォーム、レポート、またはコントロールのRowSourceプロパティの各ステートメントは保持され、ストアド プロシージャやユーザー定義関数に変換されません。
-
スタートアップ プロパティ アップサイジング ウィザードでは、次のスタートアップ プロパティがアップサイズされます。
StartUpShowDBWindow
StartUpShowStatusBar
AllowShortcutMenus
AllowFullMenus
AllowBuiltInToolbars
AllowToolbarChanges
AllowSpecialKeys
UseAppIconForFrmRpt
AppIcon
AppTitle
StartUpForm
StartUpMenuBar
StartupShortcutMenuBar -
モジュールとマクロ アップサイジング ウィザードでは、モジュールやマクロは変更されません。 アプリケーションの機能をフルに活用するには、アプリケーションSQL Server必要があります。 詳細については、MSDN の記事「Microsoft Officeにリンクされている Access アプリケーションの最適化SQL Server。