
VWD2008でSQLサーバーを使用して簡単な検索DBを作成しようとしています。
元々アクセスのデータベースファイルから
SQLサーバーの機能を利用してSQLDBをエクスポートしました。
Shopsテーブルには
[id]…主キー(自動採番)
[Shop_Code]…販売店コード
[Shop_Name]…販売店名
[Shop_Add]…住所
[Shop_AreaID]…Shope_Areaテーブルとリレーションを組む
というフィールドが存在します。
Shop_Areaテーブルには
[Shop_AreaID]…主キー(自動採番)
[Shop_Area_Status]…北海道・仙台・東京・名古屋なとの地域情報が入ります。
●Shope_Areaテーブル
Shop_AreaID | Area_Status |
------------------------------------
01 | 北海道 |
02 | 仙台 |
03 | 東京 |
VWD機能のデータベースダイアグラムより
Shopsテーブルの[Shop_AreaID]と
Shop_Areaテーブルの[Shop_AreaID]でリレーションを作成し
ダイアグラムの保存を試みようとするとエラーダイアグラムが表示されてしまいます。エラーメッセージは以下の通りです。
テーブル 'Shop_Area' は正しく保存されました。
テーブル 'shops'
- リレーションシップ 'FK_shops_Shop_Area' を作成できません。
ALTER TABLE ステートメントは FOREIGN KEY 制約 "FK_shops_Shop_Area" と競合しています。競合が発生したのは、
データベース "C:\....\091111_DATA.MDF"、テーブル "dbo.Shop_Area", column 'Shop_Area_ID' です。
上記のようなエラーメッセージが出力される場合
どういった理由が考えられるのでしょうか。
色々試してみたのですがリレーションを設定することができません。
どうか教えてください。

A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
解決済かもしれませんが、私が最近この現象で詰まってしまい、Webのどこにも情報を捜しきれなかったので。
> ALTER TABLE ステートメントは FOREIGN KEY 制約 "FK_shops_Shop_Area" と競合しています。競合が発生したのは、
> データベース "C:\....\091111_DATA.MDF"、テーブル "dbo.Shop_Area", column 'Shop_Area_ID' です。
これって、制約違反のデータが存在するときに出て来るメッセージのようです。
実際、作られた外部キーのテーブルに対して制約違反のデータを挿入しようとすると同じメッセージがきます。
で、私の場合、同じメッセージが出てきて、制約違反のデータを削除したら無事外部キーが作成できました。
No.1
- 回答日時:
恐らく作成しようとしているリレーションが既にあるという事だと思います。
SQL Server Managementでshopsテーブルを展開するとキーというのがあるのでその中にFK_shops_Shop_Areaがあると思われますので、それを右クリックして変更を選んでください。
するとダイアログが表示されますので、テーブルと列の指定を展開すると外部キーの関係が出ますので確認してみてください。
返信が遅れまして申し訳ございません。
回答ありがとうございます。
実は[Shops]テーブルは元々あったテーブルだったのですが
[Shop_Area]テーブルは今度の検索システムのために新たに
作成したテーブルになります。
なので既にリレーションが作成されているというのは
少し考えにくいのです・・・、
SQL Server Managementはインストールされていませんでしたので
確認させていただきます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
外部キーのリレーションが設定...
-
select文の戻り値を変数に格納...
-
access コンボボックス初期表示...
-
テキストボックスのvalueとtext...
-
VB.NETで DataRow()を利用して...
-
値を返さないコード パス
-
Excelで指定した日付から過去の...
-
ExcelのINDEXとMATCH関数でスピ...
-
POSTやGETの値の取得方法
-
DataGridViewの各セル幅を自由...
-
ListView 項目の選択/選択解除...
-
array関数で格納した配列の型を...
-
[エクセル]連続する指定範囲か...
-
エクセルvbaで、別シートの最下...
-
VB6.0 ファイルの一括読込み
-
VBA初心者です。結合セルを保持...
-
Accessのクエリで、replace関数...
-
DataSetから、DataTableを取得...
-
Excelのハイパーリンクにマクロ...
-
VBA実行後に元のセルに戻りたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSテーブルを RecordSet以...
-
【ACCESS】リレーションを組ん...
-
access コンボボックス初期表示...
-
SQL文(テーブル項目名が特殊文...
-
select文の戻り値を変数に格納...
-
ASP.NET:複数結合テーブルのデ...
-
外部キーのリレーションが設定...
-
DBの読み込み順について
-
accessのフォームを使ってテー...
-
asp.net MVC
-
テーブルというグローバル変数
-
Delphi BDE 複数ユーザによる...
-
フラッシュの画像を合わせるパ...
-
SQL文なんですが
-
DataGridViewで編集した内容を...
-
ASP(VBScript)で自動連番
-
ExcelVBAを使って、値...
-
VB.NETで DataRow()を利用して...
-
Accessのクエリで、replace関数...
-
エクセルで、絶対値の平均を算...
おすすめ情報