質問: 私は列のFK制約をチェックし、NULLを許可する列を持っています。ただし、プライマリ・テーブルにID 0の行がなくても0として値を許可しています。 この挿入は、.NETで一括挿入に発生します。しかし、SQL Serverで値を有効な数値に変更して0に戻すと、その値は許可されません。 だから何とかバルク挿入が許可されている0を許可している、理由はありますか?
回答: デフォルトでは、 `BULK INSERT`はチェックと外部キーの制約を無視します。 `CHECK_CONSTRAINTS`を使用してオンにすることができます。 これはドキュメントで説明されています。 > CHECK_CONSTRAINTS > > 一括インポート操作中にターゲット表またはビューのすべての制約を検査する必要があることを指定します。 CHECK_CONSTRAINTSオプションが指定されていない場合、CHECKおよびFOREIGN KEY制約は無視され、操作後に表の制約はnot-trustedとマークされます。 > >