Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Żądanie ROLLBACK TRANSACTION nie ma odpowiadającego BEGIN TRANSACTION

Pojawia się błąd, ponieważ wycofujesz się bez otwartej transakcji (masz już już zatwierdzone lub wycofane). Rozważ wyczyszczenie struktury przechowywanej procedury, spróbuj wykonać całą przechowywaną procedurę jako jedną transakcję, a następnie wycofaj, jeśli wystąpi błąd. Możesz również sprawdzić, czy wymagane jest wycofanie, sprawdzając, czy transakcja jest otwarta:

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. Błąd serwera SQL:nie można wykonać procedury zdalnej

  2. nvarchar(max) nadal jest obcinany

  3. Kod utrzymuje limit czasu

  4. Zawijaj tekst w serwerze SQL za pomocą funkcji

  5. Zapobieganie wstrzykiwaniu SQL w ASP.Net