方法 : INSERT ステートメントまたは UPDATE ステートメントで外部キー制約を無効にする
新しいデータが制約に違反することが判明している場合、または制約がデータベース内の既存データにだけ適用される場合は、INSERT トランザクションまたは UPDATE トランザクションの実行中に外部キー制約を無効にするオプションを選択します。
注意
SQL Server 2012 形式のデータベースのための新しいバージョンのテーブル デザイナーが表示されます。このトピックでは、SQL Server の以前の形式のデータベースで使用する旧バージョンのテーブル デザイナーについて説明します。
新しいバージョンでは、テーブル定義をグラフィカル インターフェイスから変更することも、スクリプト ペインで直接変更することもできます。グラフィカル インターフェイスを使用すると、スクリプト ペインでのテーブルの定義が自動的に更新されます。スクリプト ペインで SQL コードを適用するには、[更新] ボタンをクリックします。新しいバージョンの詳細については、「方法: テーブル デザイナーを使用してデータベース オブジェクトを作成する」を参照してください。
注意
次の手順で参照している Visual Studio ユーザー インターフェイス要素の一部は、お使いのコンピューターでは名前や場所が異なる場合があります。これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。詳細については、「Visual Studio の設定」を参照してください。
INSERT ステートメントまたは UPDATE ステートメントに対して外部キー制約を無効にするには
[サーバー エクスプローラー] で、制約の設定されているテーブルを選択し、[データ] メニューの [テーブル定義を開く] をクリックします。
テーブルが [テーブル デザイナー] 内で開かれます。
[テーブル デザイナー] メニューの [リレーションシップ] をクリックします。
[外部キーのリレーションシップ] ダイアログ ボックスの [選択したリレーションシップ] ボックスの一覧で、リレーションシップをクリックします。
グリッドの [DeleteRule の設定] または [UpdateRule の設定] をクリックして、プロパティの左側にあるドロップダウン リスト ボックスから操作を選択します。
[動作なし] 削除操作が許可されていないことをユーザーに通知するエラー メッセージが出力され、DELETE がロールバックされます。
[重ねて表示] 外部キー リレーションシップに関係するデータを含む行がすべて削除されます。
[Null に設定] テーブルのすべての外部キー列が null 値を使用できる場合、null 値が設定されます。 SQL Server 2005 だけに適用されます。
[既定値の設定] テーブルのすべての外部キー列に既定値が定義されている場合、既定値が設定されます。 SQL Server 2005 だけに適用されます。
注意
トリガーを使用してデータベース操作を行う場合は、トリガーを実行するために外部キー制約を無効にする必要があります。