2010-07-21 23 views
16

Làm cách nào tôi có thể đặt mức cô lập của tất cả các cuộc gọi SqlCommand ExecuteNonQuery của tôi để được đọc không được cam kết? (kết nối với một cá thể doanh nghiệp SQL Server 2008)Tôi có thể đặt mức cách ly trong chuỗi kết nối không?

Tôi chỉ đơn giản là chuyển đổi dữ liệu tĩnh và chèn kết quả vào bảng của riêng mình một cách thường xuyên và muốn tránh viết nhiều mã hơn mức cần thiết.

+2

http://msdn.microsoft.com/en-us/library/8aht5dh7.aspx –

Trả lời

14

Không, bạn không thể.

Bạn cần định nghĩa rõ ràng mức cách ly khi bạn bắt đầu giao dịch.

Để biết thêm thông tin về cách điều chỉnh mức cách ly, hãy xem MSDN documentation on the topic.

+1

Từ những gì tôi đã đọc không có cách nào để thay đổi mức cô lập giao dịch mặc định http://blogs.msdn.com/b/ialonso /archive/2012/11/26/how-to-set-the-default-transaction-isolation-level-server-wide.aspx –

+0

"Không, bạn không thể" là câu trả lời đúng, nhưng tôi đã downvoted nó do "Bạn có thể định nghĩa mức cô lập giao dịch mặc định ở mức cho mỗi cơ sở dữ liệu ", điều này không đúng. – Robertas

1
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 
BEGIN TRAN 
/* do stuff */ 
COMMIT 
+0

Đây không phải là những gì tôi đã hỏi - Tôi hiểu cách thực hiện trong SQL, nhưng tôi có nhiều câu lệnh trước khi đóng hộp cần để chạy từ một ứng dụng C#, vì vậy tôi muốn thiết lập mức cô lập trong mã –

0

Lưu ý rằng ADODB cho phép một để thiết lập mức độ cô lập mặc định cho kết nối, trong khi ADO.NET sẽ sử dụng mức cô lập giao dịch cam kết cuối cùng là cấp cô lập mặc định (xem lưu ý ở https://msdn.microsoft.com/en-us/library/5ha4240h(v=vs.110).aspx) . Xem https://technet.microsoft.com/en-us/library/ms189542%28v=sql.105%29.aspx?f=255&MSPPError=-2147217396 để biết chi tiết về cách đặt mức cách ly cho các công nghệ cơ sở dữ liệu Microsoft khác nhau.

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