4

テーブルの外部キー列を NOT NULL にする必要がありますか? 外部キー列を非 null として明示的に記述しないとどうなりますか? null 値を含めることはできますか?

そして、次の2つのステートメントの違いは何ですか:

[PhoneId] [int] NOT NULL FOREIGN KEY REFERENCES [dbo].[tbl_PhoneNumber](PhoneNumberId)
[PhoneId] [int] FOREIGN KEY REFERENCES [dbo].[tbl_PhoneNumber](PhoneNumberId)
4

3 に答える 3

6

テーブルの外部キー列を NOT NULL にする必要がありますか?

いいえ、必要ありません。MSDN は次のように述べています。

FOREIGN KEY 制約の列に NULL 以外の値を入力する場合、その値は参照される列に存在する必要があります。それ以外の場合は、外部キー違反エラー メッセージが返されます。複合外部キー制約のすべての値が検証されるようにするには、関係するすべての列で NOT NULL を指定します。

したがって、あなたの質問に対する簡単な答えは、NO IT IS NOT REQUIRED です。

外部キー属性にも NULL 値を含めることができます。

2 番目の定義はNulls、列で許可されます。

ここから:-

テーブル SQL Server 内の既存の列に FOREIGN KEY 制約が追加されると、既定では列内の既存のデータがチェックされ、NULL を除くすべての値が、参照された PRIMARY KEY またはUNIQUE 制約。

外部キー制約も確認してください

于 2013-10-26T09:09:05.023 に答える
0

必須ではありません。値を含まない外部キー属性には値NOT NULLを含めることができNULL、これを使用して、参照されたリレーションにそのようなタプルが適用されないことを示すことができます。

于 2013-10-26T09:05:09.053 に答える