次の方法で共有


複数のユーザーによる変更の調整

環境によっては、複数のユーザーが同一のオブジェクトを同時に変更することがあります。たとえば、ユーザーがテーブル デザイナーまたはデータベース ダイアグラム デザイナーでオブジェクトの構造を変更したり、クエリ デザイナーおよびビュー デザイナーの結果ペインの値を変更したりすることがあります。このような状況では、解決する必要のある競合が発生する可能性があります。

テーブル デザイナーまたはデータベース ダイアグラム デザイナーでの競合

たとえば、テーブル デザイナーでテーブルを操作しているときに、他のユーザーが同じテーブルまたは関連するテーブルを削除したり、名前を変更したりする可能性があります。テーブルを保存しようとすると、[データベースの変更を確認] ダイアログ ボックス (データベース デザイナー) が表示され、テーブルを開いた後でデータベースが更新されていることが通知されます。

このダイアログ ボックスには、テーブルを保存する結果として影響を受けるデータベース オブジェクトの一覧も表示されます。この時点で、次のいずれかの処理を実行できます。

  • [はい] をクリックしてテーブルを保存し、データベースを更新して一覧のすべての変更を反映する。

    この操作は、同じデータベース オブジェクトを共有するテーブルに影響を及ぼす可能性があります。たとえば、titleauthors テーブルの au_id 列を編集しているときに、他のユーザーが、au_id 列によって titleauthors テーブルと関連付けられている authors テーブルを操作しているとします。このテーブルを保存すると、他のユーザーのテーブルが影響を受けます。同様に、別のユーザーが sales テーブルの qty 列に CHECK 制約を定義する可能性があります。qty 列を削除して sales テーブルを保存すると、最初のユーザーの CHECK 制約が影響を受けます。

  • [いいえ] をクリックして、操作を取り消す。

    変更を保存せずにテーブルを閉じることができます。テーブルを再度開くと、そのテーブルにはデータベースの現在の内容が反映されます。

  • [テキスト ファイルを保存] をクリックして、変更の一覧を保存する。

    [データベースの変更を確認] ダイアログ ボックスに表示されるデータベース変更情報の一覧をテキスト ファイルに保存しておき、他のユーザーが行った変更の理由を調査できます。たとえば、削除することにしたテーブルを他のユーザーが編集していた場合、データベースを更新する前にテーブルを削除する必要があるかどうかを調べることができます。

クエリおよびビュー デザイナーでの競合

クエリを実行するか、ビューの結果を返すと、結果ペインにデータが表示されます。複数のユーザーが同じデータセットを同時に操作すると、競合が発生する場合があります。

たとえば、他のユーザーと同時に titleauthors テーブルの全データを表示するクエリを実行するとします。他のユーザーが、最初に返されるレコードの名前を Barb から Barbara に変更するとします。この時点で、データベースの該当するフィールドの値は Barbara ですが、こちら側に表示されている結果セットは Barb のままです。ここで、「Barbara」と入力して、行の外側をクリックします。クリックすると、競合の解決方法をたずねるメッセージが表示されます。

  • [はい] をクリックし、データベースを更新して変更を反映する。

    他のユーザーの変更はオーバーライドされます。

  • [いいえ] をクリックし、結果セットをデータベースの現在の内容と同じものにする。

    こちら側の変更が他のユーザーの変更によってオーバーライドされます。

  • [キャンセル] をクリックして、競合を解決せずに編集を続ける。

    この場合、変更をデータベースにコミットできません。

参照

処理手順

方法 : 変更スクリプトを生成する

関連項目

[データベースの変更を確認] ダイアログ ボックス (データベース デザイナー)

その他の技術情報

スクリプトを使った作業