sql >> データベース >  >> RDS >> Sqlserver

SQL Serverエラー109:INSERTステートメントには、VALUES句で指定された値よりも多くの列があります

    これは、SQLServerでデータをテーブルに挿入するときによく発生するエラーです。完全なエラーは次のようになります:

    Msg 109, Level 15, State 1, Line 1
    There are more columns in the INSERT statement than values specified in the VALUES clause. The number of values in the VALUES clause must match the number of columns specified in the INSERT statement.

    これは、INSERTでさらに列を指定した場合に発生します VALUESで挿入しようとしている値の数よりもステートメント 句。

    これは、VALUESから誤って1つ以上の値を省略した場合に発生します。 条項。

    反対のことを行おうとすると、同様の(ただし技術的には異なる)エラーが発生します。少ないを指定してください。 INSERTの列 挿入しようとするよりもステートメント。

    実例を示します。

    INSERT INTO Customers (FirstName, LastName) 
    VALUES ('Bob');

    結果:

    Msg 109, Level 15, State 1, Line 1
    There are more columns in the INSERT statement than values specified in the VALUES clause. The number of values in the VALUES clause must match the number of columns specified in the INSERT statement.

    この場合、2つの列(FirstName)を指定します 、LastName )、ただし、挿入する値を1つだけ指定します(Bob

    エラーを修正する方法

    これを修正するには、列の1つを削除するか、挿入する2番目の値を追加します。

    だから私はこれを行うことができました:

    INSERT INTO Customers (FirstName) 
    VALUES ('Bob');

    またはこれ:

    INSERT INTO Customers (FirstName, LastName) 
    VALUES ('Bob', 'Brown');

    ただし、これらの例を使用すると、 LastName 列にNOT NULLがあります 制約、最初の例はその制約に違反します(NULLを挿入しようとしているため) に 実際にNOT NULLがある場合の列 その列の制約)。


    1. phpMyadminでの最大実行時間

    2. PL/SQLでの2次元配列の作成またはシミュレーション

    3. SELECT、WHERE、およびORDER BY句の結果を再利用するにはどうすればよいですか?

    4. PostgreSQLで配列を比較する方法