Announcement

Collapse
No announcement yet.

Problem mit Transaktions (SQL Server 2000)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit Transaktions (SQL Server 2000)

    Hallo,
    ich habe eine Prozedur in der ich eine Transaktion mit normalem (READ COMMITTED) und testhalber auch schon mit dem schwachen (READ UNCOMMITTED) Isolationlevel gesetzt habe. Nun habe ich aber folgendes Problem.

    Wenn ich die Prozedur ausführe, werden in verschiedene Tabellen Werte eingefügt. Diese müssen aber außerhalb der Prozedur während der Ausführung gelesen und auch nur gelesen werden. Ergebnisse werden dann in andere Tabellen geschrieben. Das sollte doch mit Read Uncommitted möglich sein. Jedenfalls steht das so in meinem Buch und ist für mich auch verständlich. Aber es ist eben nicht so. Die Sperre bleibt solange, wie die Transaktion offen ist. Zum testen habe ich mir einfach zwei Queryfenster geöffnet und nacheinander folgende Statements abgesetzt.

    1. Verbindung 1
    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
    go
    begin tran t1
    insert into usrtab_ws values (newid(), 0)

    2. Verbindung 2
    select * from usrtab_ws
    -- läuft ohne ergbenis, da sperre vorhanden

    3. Verbindung 1
    commit tran t1

    --> nun ist das Ergebnis des Select verfügbar.

    Was muss ich machen, um die Werte sofort zu erhalten. Mir ist bewusst, dass dies auch Risiken beinhaltet, es geht aber nun mal nicht anders.

    Andreas

  • #2
    Hallo Andreas,

    Du wendest READ UNCOMMITTED falsch an, nämlich beim INSERT statt beim SELECT.

    Das sollte funktionieren:

    select *
    from usrtab_ws WITH (READ UNCOMMITTED)

    Olaf
    Olaf Helper

    <Blog> <Xing>
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    Comment


    • #3
      Originally posted by O. Helper View Post
      Das sollte funktionieren:

      select *
      from usrtab_ws WITH (READ UNCOMMITTED)

      Olaf
      Das geht gar nicht.

      Fehlermeldung:
      Falsche Syntax in der Nähe des READ-Schlüsselwortes.

      Comment


      • #4
        Sorry, Vertipper, ohne Leerzeichen:

        select *
        from usrtab_ws WITH (READUNCOMMITTED)
        Olaf Helper

        <Blog> <Xing>
        * cogito ergo sum * errare humanum est * quote erat demonstrandum *
        Wenn ich denke, ist das ein Fehler und das beweise ich täglich

        Comment

        Working...
        X