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

Tôi có thực sự cần sử dụng SET XACT_ABORT ON không?

Hãy nhớ rằng có những lỗi mà TRY-CATCH sẽ không nắm bắt được có hoặc không có XACT_ABORT .

Tuy nhiên, SET XACT_ABORT ON không ảnh hưởng đến việc bẫy lỗi. Nó đảm bảo rằng bất kỳ giao dịch nào cũng được khôi phục / hủy diệt. Khi "TẮT", thì bạn vẫn có lựa chọn cam kết hoặc khôi phục (tùy thuộc vào xact_state). Đây là thay đổi hành vi chính của SQL 2005 đối với XACT_ABORT

Những gì nó cũng làm là loại bỏ các ổ khóa, v.v. nếu thời gian chờ lệnh của máy khách bắt đầu và máy khách gửi chỉ thị "hủy bỏ". Không có SET XACT_ABORT , khóa có thể vẫn còn nếu kết nối vẫn mở. Đồng nghiệp của tôi (một MVP) và tôi đã kiểm tra kỹ điều này vào đầu năm.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm cột phân vùng cho một bảng phân vùng trong SQL Server (T-SQL)

  2. SSMS phiên bản 18 - không có Sơ đồ cơ sở dữ liệu

  3. Tính toán giá trị bằng cách sử dụng giá trị trước đó của một hàng trong T-SQL

  4. Chèn dữ liệu đối tượng lớn vào Salesforce.com từ SQL Server

  5. Truy vấn PIVOT trên các bản ghi riêng biệt