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

Yêu cầu GIAO DỊCH ROLLBACK không có GIAO DỊCH BẮT ĐẦU tương ứng

Lỗi bạn đang gặp phải là do bạn quay trở lại mà không có giao dịch đang mở (bạn đã đã cam kết hoặc quay trở lại). Cân nhắc làm sạch cấu trúc của proc đã lưu trữ của bạn, thử thực hiện toàn bộ proc được lưu trữ của bạn dưới dạng một giao dịch và sau đó quay lại nếu xảy ra lỗi. Bạn cũng có thể kiểm tra xem có yêu cầu khôi phục hay không bằng cách kiểm tra xem giao dịch có đang mở hay không:

BEGIN TRANSACTION;
BEGIN TRY

   --execute all your stored proc code here and then commit
   COMMIT;

END TRY
BEGIN CATCH

   --if an exception occurs execute your rollback, also test that you have had some successful transactions
   IF @@TRANCOUNT > 0 ROLLBACK;  

END CATCH


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JPA SET IDENTITY_INSERT không hoạt động

  2. Tôi có nên thiết kế một bảng với khóa chính là varchar hoặc int?

  3. Làm cách nào để xem các tham số của procs hiện đang chạy trong SQL Server 2008

  4. Thủ tục mong đợi tham số không được cung cấp

  5. Cách điều chỉnh hiệu suất của SQL Server, Azure SQL Database và Amazon RDS