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

Chỉnh sửa sự cố Bản ghi trong Access / SQL (Xung đột Ghi)

Các vấn đề có thể xảy ra:

1 Chỉnh sửa đồng thời

Một lý do có thể là bản ghi được đề cập đã được mở trong một biểu mẫu mà bạn đang chỉnh sửa. Nếu bạn thay đổi bản ghi theo chương trình trong phiên chỉnh sửa của mình và sau đó cố gắng đóng biểu mẫu (và do đó cố gắng lưu bản ghi), Access nói rằng bản ghi đã bị người khác thay đổi (tất nhiên đó là bạn, nhưng Access không biết ).

Lưu biểu mẫu trước khi thay đổi bản ghi theo chương trình.
Trong biểu mẫu:

'This saves the form's current record
Me.Dirty = False

'Now, make changes to the record programmatically

2 Thiếu khóa chính hoặc dấu thời gian

Đảm bảo bảng SQL-Server có khóa chính cũng như cột dấu thời gian.

Cột dấu thời gian giúp Access xác định xem bản ghi đã được chỉnh sửa kể từ lần cuối cùng được chọn hay chưa. Access thực hiện điều này bằng cách kiểm tra tất cả các trường, nếu không có sẵn dấu thời gian. Có thể điều này không hoạt động tốt với các mục nhập rỗng nếu không có cột dấu thời gian (xem 3 Vấn đề bit rỗng ).

Dấu thời gian thực sự lưu trữ số phiên bản hàng chứ không phải thời gian.

Đừng quên làm mới liên kết bảng trong quyền truy cập sau khi thêm cột dấu thời gian, nếu không Access sẽ không nhìn thấy nó. (Lưu ý:Trình hướng dẫn Tăng kích thước của Microsoft tạo các cột dấu thời gian khi chuyển đổi bảng Access sang bảng SQL-Server.)

Vấn đề 3 bit rỗng

Theo @ AlbertD.Kallal, đây có thể là vấn đề bit rỗng được mô tả ở đây: KB280730 (ảnh chụp lần cuối trên WayBackMachine, bài viết gốc đã bị xóa). Nếu bạn đang sử dụng các trường bit, hãy đặt giá trị mặc định của chúng thành 0 và thay thế mọi NULL đã nhập trước đó bằng 0 . Tôi thường sử dụng BIT DEFAULT 0 NOT NULL cho các trường Boolean vì nó phù hợp nhất với ý tưởng về Boolean.

Bài viết KB nói rằng hãy sử dụng * .adp thay vì * .mdb; tuy nhiên, Microsoft đã ngừng hỗ trợ cho Access Data Projects (ADP) trong Access 2013 .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các ký tự không phải số trả về số dương khi sử dụng ISNUMERIC () trong SQL Server

  2. Cách nhận các giá trị duy nhất từ ​​tất cả các cột của bảng trong SQL Server

  3. Bộ kết quả được phân cách bằng dấu phẩy + Truy vấn SQL

  4. Nhóm các hàng liên tiếp có cùng giá trị sử dụng khoảng thời gian

  5. Cách tách một chuỗi sau ký tự cụ thể trong SQL Server và cập nhật giá trị này vào cột cụ thể