DevTrain Startseite Visual Studio 1 Magazin  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren



 

Forum: SQL | Thema: Transaktionen | Von: G. Guest ( 25.02.2008 09:39)

Hallo zusammen, ich hoffe man kann mir bei meinem Problem helfen. Ich habe eine Prozedur geschrieben welche Inserts und Update auf einige Tabellen der Datenbank ausführen soll. Das Ganze versuche ich über Transaktionen zu lösen um sicherzustellen, dass alle Änderungen auch wirklich geschehen (drum sollte ja auch trans geben :-)). Wie auch immer. Mein Problem ist, dass - so vermute ich - nach fehlschalgen eines Befehls die Tabellen durch die Prozedur gesperrt bleiben und somit kein anderer User mehr zugreifen kann. Somit steht die WebSite. Ich weiß nun nicht genau was ich flasch mache. Prozedur ist folgendermaßen aufgebaut ( werde sie vorerst nicht posten, da sie über 1600 Zeilen code enthält - ist das zu groß?). Ich schreibe in ein Temporäre Tabelle alle Tabellen welche ich manipulieren möchte. Gehe diese dann per Cursor einzeln durch. Lese aus den Systables die Spalten der Tabellen und baue mir so die SQL Befehle zum manipulieren der Daten zusammen. (Die Tabellen werden häufig geändert drum solls Dynamisch sein - Warum ??? keine Ahnung ist aber so). Das alles klappt auch wunderbar. Die Statements werden dann per exec mit weiteren Variablen ausgeführt (um so zum beispiel die Abfragen Sprachabhängig zu machen). Nach jedem Insert, Update bzw. Delete prüfe ich die Variable @@Error und @Truncount und rufe entsprechend das Rollback für tran auf. Gibts dabei noch was zu beachten. Woran könnte es liegen, dass die Tabellen nach einem Fehler gesperrt sind. Ich hoffe mein Problem einigermasen verständlich dargestellt zu haben. Danke für die Hilfe. Grüße John


Betreff Von Datum
AW: Transaktionen
Das hört sich danach an, als ob mindestens eine Transaktion offenbleibt. Damit bleiben alle verwendeten Tabellen gesperrt. @@Trancount sollte am Anfang und am Ende auf 0 stehen.
Jürgen Auer 19.10.2008 22:55

Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!

 Betreff:
 Nachricht: Den Beitrag finden Sie nun unter: http://beta.devtrain.de/foren Die Benutzerdaten und Foreninhalte von beta.devtrain.de und www.devtrain.de sind die selben.
Sie können sich dort sogar per RSS über neue Inhalte informieren lassen.
Bei Problemen bitte direkt Mail an asp [AT] ppedv.de.

 Signatur:

  



Login
Username:


Passwort:






Passwort vergessen?

Advanced Developers Conference vom 14.-15. Februar 2011

© Copyright 2003 ppedv AG