適用対象: SQL サーバー
マルチユーザー環境では、複数のユーザーが同じオブジェクトに対して一度に変更を加えることができます。 これは、テーブル またはデータベース ダイアグラム デザイナーでオブジェクトの構造を操作している場合や、クエリ およびビュー デザイナーの結果ペインで返される結果の値に発生する可能性があります。 これによって、解決したい競合が発生する可能性があります。
テーブル またはデータベース ダイアグラム デザイナーでの競合
たとえば、テーブル デザイナーで同じテーブルまたは関連するテーブルを操作しているときに、別のユーザーがテーブルを削除したり、名前を変更したりできます。 テーブルを保存しようとすると、[データベースの変更が検出されました] ダイアログ ボックスに、テーブルを開いた後にデータベースが更新されたことが通知されます。
このダイアログ ボックスには、テーブルの保存の結果として影響を受けるデータベース オブジェクトの一覧も表示されます。 この時点で、次のいずれかのアクションを実行できます。
[はい] 選択してテーブルを保存し、一覧のすべての変更でデータベースを更新します。
このアクションは、同じデータベース オブジェクトを共有するテーブルに影響する可能性があります。 たとえば、
au_idテーブルのtitleauthors列を編集し、別のユーザーがauthors列のtitleauthorsテーブルに関連するau_idテーブルを操作するとします。 テーブルを保存すると、他のユーザーのテーブルに影響します。 同様に、別のユーザーが、qtyテーブルのsales列の check 制約を定義したとします。qty列を削除し、salesテーブルを保存すると、他のユーザーの check 制約が影響を受けます。[ なし] を選択して、保存アクションを取り消します。
その後、保存せずにテーブルを閉じます。 テーブルを再度開くと、データベース内のテーブルと一致します。
[テキストファイル を保存] を選んで、変更の一覧を保存します。
[データベースの変更が検出 ] ダイアログ ボックスに表示されているデータベース変更の一覧をテキスト ファイルに保存して、他のユーザーの変更の原因を調査できます。 たとえば、削除対象としてマークしたテーブルを別のユーザーが編集した場合は、データベースを更新する前にテーブルを削除する必要があるかどうかを調べる必要があります。
クエリおよびビュー デザイナーでの競合
クエリを実行するか、ビューの結果を返す場合、データは 結果ペイン (Visual Database Tools) に表示されます。 複数のユーザーが同じデータ セットで同時に作業できるため、競合が発生する可能性があります。
たとえば、自分と同僚がそれぞれクエリを実行して、titleauthors テーブル内のすべてのデータを表示するとします。 他のユーザーが、最初に返されるレコードの名を Barb から Barbara に変更します。 この時点で、データベースにはそのフィールドに Barbara が含まれていますが、結果セットには Barb が表示されています。 次に、バーバラを入力し、行から外して選択します。 競合を解決する方法を尋ねるメッセージが表示されます。
[ はい ] を選択して、変更内容でデータベースを更新します。
このオプションは、同僚の変更をオーバーライドします。
[ いいえ ] を選択すると、結果セットがデータベース内の現在の内容に更新されます。
このオプションは、変更内容を同僚の変更に上書きします。
競合を解決せずに編集を続行するには、[ キャンセル] を選択します。
この場合、変更をデータベースにコミットすることはできません。