SQL Serverの「列にnull 'id' 'にnullを挿入できません」エラー:包括的なガイド
SQL Serverデータベースにデータを挿入するには、すべての列、特に主キーに値を提供する必要があります。 列がNOT NULL
として指定され、デフォルト値がない場合、a NULL
を挿入しようとすると、エラーがトリガーされます。
シナリオ:ロールテーブルへの挿入 このSQLステートメントを考慮してください:
これは、
<code class="language-sql">INSERT INTO role (name, created) VALUES ('Content Coordinator', GETDATE()), ('Content Viewer', GETDATE())</code>
およびrole
列を含む - 後者はデフォルトのタイムスタンプを備えています)。 プライマリキー列、name
は省略されています。created
id
SQL Serverは、明示的なプライマリキー値または自動生成を要求します。
は指定されておらず、デフォルトがないため、SQL Serverはそれを割り当てます。 ただし、はid
として定義されており、NULL
挿入を防ぎます。 結果のエラーメッセージは次のとおりです
id
NOT NULL
NULL
解決策:救助への自動インクリメント
<code>Msg 515, Level 16, State 2, Line 1 Cannot insert the value NULL into column 'id', table 'CMT_DEV.dbo.role'; column does not allow nulls. INSERT fails. The statement has been terminated.</code>
解決策は、が常に有効な値を受信することを確認することです。 最も一般的な方法は、自動インクリメントを使用することです: SQL Server Management Studio(SSMS)の使用:
id
デザインモードで
role
これにより、新しい行ごとに自動的にインクリメントするように以上がなぜ「値nullを列「ID」に挿入することができない」エラーをSQL Serverに取得できないのですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。