2010-10-18 29 views
7

Ok, đây là một điều kỳ lạ. Tôi có một thói quen đi qua và làm cho một số xóa dữ liệu cũ. Tôi đã có một vài người phàn nàn về việc gặp lỗi:Tuyên bố DELETE xung đột với ràng buộc REFERENCE

System.Data.SqlClient.SqlException: The DELETE statement conflicted with 
the REFERENCE constraint 

Nhìn vào mã của tôi (im sử dụng L2S), tôi không thấy điều này có thể thực hiện được. Nhưng ok, cho phép nói nó được. Tôi yêu cầu khách hàng gửi cho tôi DB của họ để tôi có thể gỡ lỗi nó một số, một bắt: Khi tôi móc nó lên đến máy chủ SQL của tôi và chạy thường lệ, tôi nhận được không có lỗi. Mọi thứ hoạt động & sẽ bị xóa như mong đợi. Đây là một cá thể SQL 2008 Express trên Win2008 mà DB ban đầu xuất phát từ đó, và tôi kết nối nó với một cá thể SQL 2008 đầy đủ. Có bất kỳ sự khác biệt nào có thể gây ra hành vi như vậy không?

+1

Khách hàng của bạn có thói quen cho phép 'pro dba' thêm trình kích hoạt và những gì không phù hợp với lược đồ của bạn không? Nó đã xảy ra với tôi trước đây và nó làm cho tôi muốn ăn bàn phím của tôi. – Alex

+0

@ Alex, hoàn toàn có thể, nhưng những trình kích hoạt đó sẽ vẫn hiện diện khi tôi treo DB lên máy chủ của tôi? –

+0

Hmm, có thể bạn có thể hỏi họ xem họ có đang gửi cho bạn db chính xác đang chạy trong môi trường của họ hay không - bao gồm bất kỳ 'tiện ích' nào mà họ có thể đã thêm. Tôi cũng tò mò nếu điều này đúng là một vấn đề SQL hoặc L2S .. Ngoài ra, bạn có thể thử chạy mã của bạn trong một trình gỡ lỗi nhưng kết nối với db của họ? – Alex

Trả lời

1

Làm cho máy khách lấy các bản ghi sơ đồ sql và kiểm tra xem sql đang chạy. So sánh điều này với dữ liệu trong các bảng để xác minh ràng buộc.

Các vấn đề liên quan