
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ランキング
-
access コンボボックス初期表示...
-
SQL文(テーブル項目名が特殊文...
-
ASP.NET:複数結合テーブルのデ...
-
VB.NETで DataRow()を利用して...
-
表にフィルターをかけ、絞った...
-
エクセルで、絶対値の平均を算...
-
ExcelVBAを使って、値...
-
文字列にアルファベットが何文...
-
VBAでセルをクリックする回...
-
i=cells(Rows.Count, 1)とi=cel...
-
データ数をカウントしたいのですが
-
VBScriptでXcopyしたいのですが
-
count(*)で取得した値をJAVAの...
-
エクセルvba:自己セルの情報取...
-
”戻り値”が変化したときに、マ...
-
特定行の色を変えたい(FlexGrid)
-
Accessのクエリで、replace関数...
-
VBA実行後に元のセルに戻りたい
-
Excle VBA Findメソッドについて
-
DataGridViewで右寄せ左寄せが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSテーブルを RecordSet以...
-
select文の戻り値を変数に格納...
-
【ACCESS】リレーションを組ん...
-
SQL文(テーブル項目名が特殊文...
-
access コンボボックス初期表示...
-
DBの読み込み順について
-
外部キーのリレーションが設定...
-
Delphi BDE 複数ユーザによる...
-
Accessの認証について
-
SQL文なんですが
-
accessのフォームを使ってテー...
-
異なるデータベースでのSELECT ...
-
C# OleDb SQL JOIN すると例外
-
テーブルというグローバル変数
-
DataGridViewで編集した内容を...
-
VBとACCESSを接続したい
-
select文の検索結果と文字列を...
-
ASP.NET:複数結合テーブルのデ...
-
ASP(VBScript)で自動連番
-
ExcelVBAを使って、値...
おすすめ情報