Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Грешка 109 на SQL Server:Има повече колони в израза INSERT, отколкото стойностите, посочени в клаузата VALUES

Това е често срещана грешка в SQL Server при вмъкване на данни в таблица. Пълната грешка е така:

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 клауза.

Ще получите подобна (но технически различна) грешка, ако се опитате да направите обратното – посочете по-малко колони в 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.

В този случай посочвам две колони (FirstName , LastName ), но посочвам само една стойност за вмъкване (Bob ).

Как да поправя грешката

Мога да поправя това, като премахна една от колоните или като добавя втора стойност за вмъкване.

Така че мога да направя това:

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

Или това:

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

Въпреки че, използвайки тези примери, ако Фамилия колоната има NOT NULL ограничение, първият пример ще наруши това ограничение (защото ще се опитвам да вмъкна NULL в Фамилия колона, когато всъщност има NOT NULL ограничение за тази колона).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изчисляване на броя на пълните месеци между две дати в SQL

  2. Как да премахна разширени ASCII знаци от низ в T-SQL?

  3. Неправилен синтаксис близо до ''

  4. SQL Server 2016 – Въведение в Stretch база данни

  5. Не може да се свърже със сървъра - грешка, свързана с мрежата или специфична за екземпляр