Съобщение за грешка 110 е често срещана грешка в SQL Server при вмъкване на данни в таблица. Пълната грешка изглежда така:
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.
Това се случва, когато посочите по-малко колони в INSERT
израз от броя на стойностите, които се опитвате да вмъкнете с VALUES
клауза.
Това ще се случи, ако случайно пропуснете една или повече колони от INSERT
изявление.
Ще получите подобна (но технически различна) грешка, ако се опитате да направите обратното – посочете още колони в INSERT
изявление, отколкото се опитвате да вмъкнете.
Пример
Ето пример за демонстрация.
INSERT INTO Customers (FirstName)
VALUES ('Bob', 'Brown');
Резултат:
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.
В този случай посочвам една колона за вмъкване на данни в (FirstName
), но след това посочвам две стойности за вмъкване (Bob
и Brown
).
Как да поправя грешката
Можете да коригирате тази грешка, като се уверите, че броят на колоните съответства на броя на стойностите, които трябва да бъдат вмъкнати.
В моя пример бих могъл или да премахна една от стойностите, които трябва да се вмъкнат, или да добавя втора колона, за да се погрижа за втората стойност.
Така че мога да направя това:
INSERT INTO Customers (FirstName)
VALUES ('Bob');
Или това:
INSERT INTO Customers (FirstName, LastName)
VALUES ('Bob', 'Brown');
Струва си да се спомене, че ако Фамилия колоната има NOT NULL
ограничение, първият пример ще наруши това ограничение (защото ще се опитвам да вмъкна NULL
в Фамилия колона, когато всъщност има NOT NULL
ограничение за тази колона).
Ако има само две колони в таблицата, мога да направя и това:
INSERT INTO Customers
VALUES ('Bob', 'Brown');
Въпреки че обикновено е по-добре да посочите изрично имената на колоните, ако е възможно (както в предишния пример).