Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Lỗi máy chủ SQL 109:Có nhiều cột trong câu lệnh INSERT hơn giá trị được chỉ định trong mệnh đề VALUES

Đây là lỗi thường gặp trong SQL Server khi chèn dữ liệu vào bảng. Toàn bộ lỗi xảy ra như thế này:

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.

Điều này xảy ra khi bạn chỉ định nhiều cột hơn trong INSERT tuyên bố ngoài số lượng giá trị mà bạn đang cố gắng chèn với VALUES mệnh đề.

Điều này sẽ xảy ra nếu bạn vô tình bỏ qua một hoặc nhiều giá trị khỏi VALUES mệnh đề.

Bạn sẽ gặp lỗi tương tự (nhưng khác về mặt kỹ thuật) nếu bạn cố gắng làm ngược lại - chỉ định ít hơn trong INSERT tuyên bố mà bạn cố gắng chèn.

Ví dụ

Đây là một ví dụ để chứng minh.

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

Kết quả:

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.

Trong trường hợp này, tôi chỉ định hai cột (FirstName , LastName ), nhưng tôi chỉ chỉ định một giá trị để chèn (Bob ).

Cách sửa lỗi

Tôi có thể sửa lỗi này bằng cách xóa một trong các cột hoặc thêm giá trị thứ hai sẽ được chèn vào.

Vì vậy, tôi có thể làm điều này:

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

Hoặc cái này:

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

Mặc dù, bằng cách sử dụng các ví dụ này, nếu LastName cột có NOT NULL ràng buộc, ví dụ đầu tiên sẽ vi phạm ràng buộc đó (vì tôi đang cố chèn NULL vào LastName khi thực sự có NOT NULL ràng buộc vào cột đó).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khi nào sử dụng chỉ mục được phân cụm hoặc không được phân cụm trong SQL Server

  2. Cách tốt nhất để triển khai đường mòn kiểm tra trong SQL Server?

  3. lấy một chuỗi được phân tách bằng dấu phẩy từ các hàng

  4. Phân tích cú pháp JSON trong TSQL

  5. Cách CẬP NHẬT từ CHỌN trong SQL Server