Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Kesalahan SQL Server 110:Ada lebih sedikit kolom dalam pernyataan INSERT daripada nilai yang ditentukan dalam klausa VALUES.

Pesan galat 110 adalah galat yang umum ditemui di SQL Server saat memasukkan data ke dalam tabel. Kesalahan lengkapnya terlihat seperti ini:

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.

Ini terjadi ketika Anda menentukan lebih sedikit kolom di INSERT pernyataan daripada jumlah nilai yang Anda coba masukkan dengan VALUES ayat.

Ini akan terjadi jika Anda secara tidak sengaja menghilangkan satu atau beberapa kolom dari INSERT pernyataan.

Anda akan mendapatkan kesalahan serupa (tetapi secara teknis berbeda) jika Anda mencoba melakukan yang sebaliknya – tentukan lebih kolom di INSERT pernyataan daripada yang Anda coba masukkan.

Contoh

Berikut ini contoh untuk didemonstrasikan.

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

Hasil:

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.

Dalam hal ini, saya menentukan satu kolom untuk memasukkan data ke dalam (FirstName ), tetapi saya kemudian menentukan dua nilai untuk disisipkan (Bob dan Brown ).

Cara Memperbaiki Kesalahan

Anda dapat memperbaiki kesalahan ini dengan memastikan jumlah kolom sesuai dengan jumlah nilai yang akan disisipkan.

Dalam contoh saya, saya dapat menghapus salah satu nilai yang akan disisipkan, atau menambahkan kolom kedua untuk memenuhi nilai kedua.

Jadi saya bisa melakukan ini:

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

Atau ini:

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

Perlu disebutkan bahwa jika LastName kolom memiliki NOT NULL kendala, contoh pertama akan melanggar batasan itu (karena saya akan mencoba memasukkan NULL ke dalam Nama Belakang kolom ketika sebenarnya ada NOT NULL kendala pada kolom itu).

Jika hanya ada dua kolom dalam tabel, saya juga bisa melakukan ini:

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

Meskipun biasanya lebih baik untuk secara eksplisit menyatakan nama kolom jika memungkinkan (seperti pada contoh sebelumnya).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ikhtisar Quests Layanan Pemantauan Database Terbaru - Spotlight Cloud

  2. Ukuran maksimum untuk Kueri SQL Server? klausa IN? Apakah ada Pendekatan yang Lebih Baik?

  3. Cara Menambahkan Kolom Baru ke Tabel yang Ada di SQL Server (T-SQL)

  4. Dapatkan AVG mengabaikan nilai Null atau Zero

  5. Bagaimana cara memeriksa kompatibilitas Database SQL Server setelah sp_dbcmptlevel tidak digunakan lagi?