sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server Error 109:Det finns fler kolumner i INSERT-satsen än de värden som anges i VALUES-satsen

Detta är ett vanligt fel i SQL Server när data infogas i en tabell. Hela felet ser ut så här:

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.

Detta händer när du anger fler kolumner i INSERT sats än antalet värden som du försöker infoga med VALUES klausul.

Detta inträffar om du av misstag utelämnar ett eller flera värden från VALUES klausul.

Du skulle få ett liknande (men tekniskt annorlunda) fel om du försökte göra tvärtom – ange färre kolumner i INSERT uttalande än du försöker infoga.

Exempel

Här är ett exempel att visa.

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

Resultat:

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.

I det här fallet anger jag två kolumner (FirstName , LastName ), men jag anger bara ett värde att infoga (Bob ).

Hur du åtgärdar felet

Jag kan fixa detta genom att antingen ta bort en av kolumnerna eller lägga till ett andra värde som ska infogas.

Så jag kunde göra så här:

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

Eller det här:

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

Även om, med hjälp av dessa exempel, om Efternamn kolumnen har en NOT NULL begränsning, kommer det första exemplet att bryta mot den begränsningen (eftersom jag skulle försöka infoga NULL i Efternamn kolumn när det faktiskt finns en NOT NULL begränsning på den kolumnen).


  1. Ta bort en databaspostprofil (SSMS)

  2. Rekursiv fråga i Oracle

  3. Varning:mysql_connect():[2002] Ingen sådan fil eller katalog (försöker ansluta via unix:///tmp/mysql.sock) i

  4. Vad är skillnaden mellan RANK och DENSE_RANK i SQL?