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

Kesalahan SQL Server 109:Ada lebih banyak kolom dalam pernyataan INSERT daripada nilai yang ditentukan dalam klausa VALUES

Ini adalah kesalahan yang umum ditemui di SQL Server saat memasukkan data ke dalam tabel. Kesalahan lengkapnya seperti ini:

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.

Ini terjadi ketika Anda menentukan lebih banyak 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 nilai dari VALUES klausa.

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

Contoh

Berikut ini contoh untuk didemonstrasikan.

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

Hasil:

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.

Dalam hal ini, saya menentukan dua kolom (FirstName , LastName ), tetapi saya hanya menetapkan satu nilai untuk disisipkan (Bob ).

Cara Memperbaiki Kesalahan

Saya dapat memperbaikinya dengan menghapus salah satu kolom, atau menambahkan nilai kedua untuk disisipkan.

Jadi saya bisa melakukan ini:

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

Atau ini:

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

Meskipun, dengan menggunakan contoh-contoh ini, 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).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TSQL:Buat tampilan yang mengakses banyak database

  2. SQL Server 2008 String Kosong vs. Spasi

  3. MultipleActiveResultSets=Benar atau beberapa koneksi?

  4. SQL Server SELECT ke tabel yang ada

  5. Cakupan tabel sementara di SQL Server