Felmeddelande 110 är ett vanligt förekommande fel i SQL Server när data infogas i en tabell. Hela felet ser ut så här:
Msg 110, Level 15, State 1, Line 1 There are fewer 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 färre kolumner i INSERT
sats än antalet värden som du försöker infoga med VALUES
klausul.
Detta kommer att inträffa om du av misstag utelämnar en eller flera kolumner från INSERT
uttalande.
Du skulle få ett liknande (men tekniskt annorlunda) fel om du försökte göra tvärtom – ange mer kolumner i INSERT
uttalande än du försöker infoga.
Exempel
Här är ett exempel att visa.
INSERT INTO Customers (FirstName)
VALUES ('Bob', 'Brown');
Resultat:
Msg 110, Level 15, State 1, Line 1 There are fewer 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 en kolumn för att infoga data i (FirstName
), men jag anger sedan två värden att infoga (Bob
och Brown
).
Hur du åtgärdar felet
Du kan åtgärda det här felet genom att se till att antalet kolumner matchar antalet värden som ska infogas.
I mitt exempel kan jag antingen ta bort ett av värdena som ska infogas, eller lägga till en andra kolumn för att tillgodose det andra värdet.
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');
Det är värt att nämna att 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).
Om det bara finns två kolumner i tabellen kan jag också göra så här:
INSERT INTO Customers
VALUES ('Bob', 'Brown');
Även om det vanligtvis är bättre att explicit ange kolumnnamnen om möjligt (som i föregående exempel).