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).