Làm thế nào tôi có thể nhìn thấy ổ khóa được chia sẻ? Có phải vì chìa khóa nước ngoài?
Đúng. SQL Server hoàn nguyên về việc thực hiện khóa mức cô lập đã cam kết đọc khi truy cập vào bảng nhằm mục đích xác nhận các ràng buộc khóa ngoài. Điều này là cần thiết cho tính chính xác và không thể bị vô hiệu hóa.
Hành vi chỉ áp dụng cho các báo cáo sửa đổi dữ liệu. Khóa chung chỉ được thực hiện khi kiểm tra dữ liệu liên quan đến khóa ngoài. Truy cập dữ liệu khác trong cùng một kế hoạch thực hiện có thể tiếp tục sử dụng phiên bản hàng.
Nếu SQL Server không làm điều này, các câu lệnh sửa đổi dữ liệu theo RCSI
có thể sẽ vi phạm ràng buộc khóa ngoại vì kiểm tra tính toàn vẹn đã sử dụng dữ liệu lỗi thời (đã được phiên bản).
Thật không may, hiện tại không có cách nào được hỗ trợ để thấy sự thay đổi này trong hành vi khóa trong kế hoạch thực hiện. Có thể thấy các gợi ý khóa bên trong khi cờ theo dõi 8607 đang hoạt động.