2011-11-01 32 views
16

Tôi đang kết nối với Máy chủ SQL không sử dụng tự động. Nếu mọi thứ thành công, tôi gọi cam kết. Nếu không, tôi chỉ cần thoát ra. Tôi có cần phải gọi lại một cách rõ ràng hay nó sẽ được tự động cuộn lại khi chúng tôi đóng kết nối mà không cam kết?Tôi có cần gọi lại nếu tôi không bao giờ cam kết không?

Trong trường hợp quan trọng, tôi đang thực hiện các lệnh SQL từ bên trong proc sql trong SAS.

CẬP NHẬT: Có vẻ như SAS có thể gọi tự động cam kết ở cuối khối sql proc nếu rollback không được gọi. Vì vậy, trong trường hợp này, rollback sẽ là nhiều hơn thực hành tốt; nó sẽ là cần thiết.

Cập nhật cuối cùng: Chúng tôi đã chuyển sang một hệ thống mới, dường như tôi hành xử ngược lại với hệ thống trước đó của chúng tôi. Khi kết thúc giao dịch mà không chỉ định cam kết hoặc quay lại, giao dịch sẽ quay trở lại. Vì vậy, lời khuyên đưa ra dưới đây chắc chắn là chính xác: luôn cam kết hoặc quay lại một cách rõ ràng.

Trả lời

7

nên cuộn lại khi đóng kết nối. Nhấn mạnh vào phải vì một lý do :-)

Xử lý giao dịch và xử lý lỗi đúng cách nên bạn luôn cam kết khi các điều kiện cam kết được đáp ứng và quay lại khi không. Tôi nghĩ rằng đó là một thói quen tuyệt vời để luôn luôn cam kết hoặc rollback khi thực hiện và không dựa vào ngắt kết nối/etc. Tất cả phải mất là một sai lầm hoặc phiên không chính xác/không đóng để tạo ra một cơn ác mộng chặn chuỗi cho tất cả :-)

+1

Điều gì sẽ ảnh hưởng đến kết nối tổng hợp? –

+0

Nếu bạn quản lý giao dịch của mình bằng các phương pháp hay nhất, bạn không cần phải lo lắng, @JoeStefanelli :-) Ý tôi là - 1.) trong và ngoài giao dịch của bạn nhanh nhất có thể - chỉ thực hiện những gì cần thiết trong đó để giữ dấu chân và tác động nhỏ và 2.) Xử lý lỗi và dọn dẹp đúng cách để cam kết khi thực hiện quyền và quay lại khi không. Tôi sẽ không chấp nhận thay đổi trong môi trường mà tôi quản lý nếu nó vi phạm hai nguyên tắc cơ bản này. Vì vậy, kết nối tổng hợp sẽ không có tác dụng ở đó. –

+0

Đồng ý rằng tốt nhất bạn nên thực hiện cam kết rõ ràng của mình khi mọi thứ được thực hiện đúng. Câu hỏi của tôi là nhằm mục đích nhiều hơn vào phần "*** nên *** quay lại gần kết nối" của câu trả lời của bạn. –

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