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).