0
Create Proc A 
    as 
    begin 
     Begin try 
     --Logic Here 
     Execute B 
     end try 
     begin catch 
     end catch 
    End 

Über meine beiden sp ist dieTransaktionsanzahl nach EXECUTE einer nicht übereinstimmenden Anzahl von BEGIN- und COMMIT-Anweisungen. Vorherige Anzahl = 1, aktuelle Zählung = 0

Ich rufe SP B von SP A. gibt es zwei verschiedene Datenbanken, die an dem anderen Ort vorhanden sind. A sp ist an einem Ort & B sp ist an anderer Stelle. beide SP sind über einen Verbindungsserver verbunden.

wenn ich rufe SP A von Webservice.

Im Web-Service habe ich die Logik für Transaktionen geschrieben. Ich habe keine Logik für Transaktionen in SQL geschrieben.

In der SP B gibt es keine Logik geschrieben es einfach einen Wert zurückgeben. Die Kommunikation mit dem verbundenen Server funktioniert für alle anderen SPs. Ich bin wirklich sehr frustriert, warum dieser Fehler nur für einen SP kommt.

Antwort

0

Es könnte durch ein paar Probleme verursacht werden. Versuchen Sie das folgende Skript in Ihrem CATCH-Block.

BEGIN CATCH 
    DECLARE @error INT, 
     @message VARCHAR(8000) 

    SELECT @error = ERROR_NUMBER(), @message = ERROR_MESSAGE() 

    RAISERRROR ('Issue', 16, 1, @error, @message) 
END CATCH