ホームページ > データベース > mysql チュートリアル > なぜ「値nullを列「ID」に挿入することができない」エラーをSQL Serverに取得できないのですか?

なぜ「値nullを列「ID」に挿入することができない」エラーをSQL Serverに取得できないのですか?

Barbara Streisand
リリース: 2025-01-24 11:02:13
オリジナル
586 人が閲覧しました

Why Am I Getting the

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>
ログイン後にコピー
テーブルに2行を追加しようとします(

およびrole列を含む - 後者はデフォルトのタイムスタンプを備えています)。 プライマリキー列、nameは省略されています。created id

エラーの内訳

SQL Serverは、明示的なプライマリキー値または自動生成を要求します。

は指定されておらず、デフォルトがないため、SQL Serverはそれを割り当てます。 ただし、

idとして定義されており、NULL挿入を防ぎます。 結果のエラーメッセージは次のとおりです id NOT NULLNULL解決策:救助への自動インクリメント

<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デザインモードで

テーブルを開きます

列を選択し、列のプロパティにアクセスします。
  1. 「ID仕様」の下で、「set」は「はい」から「アイデンティティ増分」です。 role これにより、新しい行ごとに自動的にインクリメントするように
  2. を構成し、マニュアルプライマリキー仕様を排除します。

以上がなぜ「値nullを列「ID」に挿入することができない」エラーをSQL Serverに取得できないのですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート