SSMS
 sql >> Cơ Sở Dữ Liệu >  >> Database Tools >> SSMS

SSMS cho phép các bản ghi trùng lặp trong một bảng, nhưng không cho phép các bản cập nhật tiếp theo

Tất cả những gì mà studio quản lý từng làm là cung cấp giao diện người dùng để tạo một số SQL cho bạn và chạy nó trên DB.

Trong trường hợp của bạn, mỗi khi bạn thêm một hàng, nó sẽ tạo ra một câu lệnh INSERT. Điều này hoàn toàn hợp lệ.

Sau đó, khi bạn cố gắng sử dụng giao diện người dùng để XÓA hoặc CẬP NHẬT một bản ghi duy nhất trong số tất cả các bản ghi trùng lặp này, nó không thể tạo ra SQL để làm điều đó. Lý do là vì không có khóa trên bảng, không có cách nào tạo ra mệnh đề WHERE đại diện cho bản ghi mà bạn đang cố CẬP NHẬT hoặc XÓA.

Với tôi, thông báo "lỗi" nghe hoàn toàn rõ ràng và hợp lệ.

Về phần nhận xét của bạn:

Trước sự ngạc nhiên của tôi, nó cũng cho phép tôi nhập "giá trị1" trên hàng thứ hai và đi xuống - điều này sẽ không thể xảy ra vì bây giờ có hai dấu giống hệt nhau. Tuy nhiên, vì tôi chỉ loanh quanh nên điều này không làm phiền tôi.

Rõ ràng đây là lý thuyết kỳ lạ và mang tính phá vỡ, nhưng tôi không thực sự quan tâm vì đây chỉ là một bảng được tạo ra để gây rối.

Không có gì sai khi có một bảng cơ sở dữ liệu cho phép trùng lặp, đó là điều hoàn toàn hợp lệ để làm nếu đó là thứ bạn cần. Đối với việc không "quan tâm" hoặc bị "làm phiền" là bạn đã cho phép trùng lặp. Đó là chỗ sai lầm. Đó là lúc bạn nên nhận ra rằng bạn đã quên thêm khóa chính.



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Làm cách nào để chèn NEWID () / GUID / UUID vào trình soạn thảo mã?

  2. Tạo bảng bằng cách sao chép cấu trúc của bảng hiện có

  3. Thực hiện tham gia vào các truy vấn đã tham gia

  4. Chỉnh sửa dtsx thông qua SSMS

  5. Cách kết nối với phiên bản cục bộ của SQL Server 2008 Express