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

Vi phạm SQL lỗi ràng buộc KEY CHÍNH

Theo thiết kế, bảng của bạn [cresql].[dbo].[AR_Transactions] được cho là chỉ giữ một giá trị cho khóa chính - trong trường hợp của bạn, đây dường như là sự kết hợp của các cột tạo nên PK này.

Đây không phải là vấn đề SQL, mà có vẻ là một khái niệm thiết kế.

Bạn nên tìm hiểu tổ hợp khóa nào đang tạo nên khóa chính của mình - có thể là thiết kế nói rằng bạn có thể chèn một lần và cập nhật sau cho tổ hợp đó (mặc dù tôi không coi đây là thiết kế tốt).

CHỈNH SỬA

Vì Trans_Id là PK và bạn không sử dụng cột đó trong phần chèn của mình, nó sẽ được chèn dưới dạng IDENTITY, dưới dạng DEFAULT (brrrrr) hoặc sử dụng TRIGGER.

NHẬN DẠNG: Kiểm tra xem thông số IDENTITY có bị vặn hay không. Nếu vậy, chỉ cần đặt lại nó. Đây là cách Làm cách nào để tôi có thể đặt lại cột nhận dạng trong biến bảng T-SQL?

ĐỊNH NGHĨA: Đây là một lựa chọn kỳ quặc và bạn có thể phải hỏi người thiết kế cơ sở dữ liệu, đọc tài liệu hoặc chỉ đơn giản là tự tìm hiểu. Trong mọi trường hợp, đây là một lựa chọn không phổ biến.

TRIGGER: Tìm trình kích hoạt và đọc qua mã để xem nó đang làm gì. Đây là cách tìm danh sách trình kích hoạt Cách dễ di chuyển nhất để kiểm tra xem trình kích hoạt có tồn tại trong SQL Server hay không?

Tình huống thay thế:

Có thể có một trình kích hoạt chèn vào bảng AUDIT có thể có vấn đề. Kiểm tra xem bảng có bất kỳ trình kích hoạt nào khác không và xem chúng hoạt động như thế nào.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thủ tục được lưu trữ đang thực thi với các chỉ mục khác nhau khi được gọi qua Entity Framework so với SSMS

  2. Cách bỏ tất cả các Khóa chính khỏi tất cả các bảng trong Cơ sở dữ liệu SQL Server - Hướng dẫn SQL Server / TSQL Phần 65

  3. Bắt các công cụ dữ liệu máy chủ Sql hoạt động với Visual Studio 2012 Express Release Ứng viên

  4. Làm thế nào để chọn tất cả các bản ghi từ một bảng mà không tồn tại trong một bảng khác?

  5. Đăng ký tên máy chủ mới trong Sql Managment Studio