sql >> Database >  >> RDS >> Sqlserver

SQL Server Error 110:Er zijn minder kolommen in de INSERT-instructie dan de waarden die zijn opgegeven in de VALUES-clausule.

Foutbericht 110 is een veelvoorkomende fout in SQL Server bij het invoegen van gegevens in een tabel. De volledige fout ziet er als volgt uit:

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.

Dit gebeurt wanneer u minder kolommen opgeeft in de INSERT instructie dan het aantal waarden dat u probeert in te voegen met de VALUES clausule.

Dit gebeurt als u per ongeluk een of meer kolommen weglaat uit de INSERT verklaring.

U krijgt een vergelijkbare (maar technisch andere) fout als u het tegenovergestelde probeert - specificeer meer kolommen in de INSERT verklaring dan u probeert in te voegen.

Voorbeeld

Hier is een voorbeeld om te demonstreren.

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

Resultaat:

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.

In dit geval geef ik één kolom op om gegevens in te voegen (FirstName ), maar ik geef dan twee waarden op om in te voegen (Bob en Brown ).

Hoe de fout op te lossen

U kunt deze fout oplossen door ervoor te zorgen dat het aantal kolommen overeenkomt met het aantal in te voegen waarden.

In mijn voorbeeld zou ik ofwel een van de in te voegen waarden kunnen verwijderen, of een tweede kolom kunnen toevoegen om voor de tweede waarde te zorgen.

Dus ik zou dit kunnen doen:

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

Of dit:

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

Het is vermeldenswaard dat als de Achternaam kolom heeft een NOT NULL beperking, zal het eerste voorbeeld die beperking schenden (omdat ik zou proberen om NULL in te voegen in de Achternaam kolom wanneer er daadwerkelijk een NOT NULL . is beperking op die kolom).

Als er slechts twee kolommen in de tabel zijn, zou ik ook dit kunnen doen:

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

Hoewel het meestal beter is om de kolomnamen expliciet te vermelden indien mogelijk (zoals in het vorige voorbeeld).


  1. Neo4j-installatie

  2. Bereken deciel van frequentie in MySQL

  3. slaapstand met c3p0:createClob() is nog niet geïmplementeerd

  4. ORA-01034:ORACLE niet beschikbaar ORA-27101:gedeelde geheugenrealm bestaat niet