Announcement

Collapse
No announcement yet.

Datensatz / Feld sperre

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

  • Datensatz / Feld sperre

    Hallo Leute,

    ich habe in einer Tabelle ein Int Feld, dass ich lese und dann um + 1 hochzähle.
    Das können allerdings viele User gleichzeitig. Ich würde gerne sicherstellen, dass nur ein Unser das Feld lesen und dann hochzählen kann ohne das ein weiterer User in diesen Prozess zwischen lesen und hochzählen eindringt. Also eine Art Thread-Sicherheit. Wie kann ich das in MS-SQL realisieren?
    AlexDgG

    Es gibt keine dummen Fragen. Nur dumme Antworten!

  • #2
    Lies den Wert gleich beim update aus...
    [HIGHLIGHT="SQL"]BEGIN TRAN;

    CREATE Table Test ( ID INT )
    INSERT INTO Test SELECT 1;
    SELECT * FROM Test;

    DECLARE @Test TABLE (old INT, New INT);

    UPDATE Test
    SET ID = ID + 1
    OUTPUT Deleted.ID, Inserted.ID INTO @Test;

    SELECT * FROM @Test;

    ROLLBACK ; -- aufräumen
    [/HIGHLIGHT]

    Comment


    • #3
      Dürfte man erfahren, zu welchem Zweck das benötigt wird? Normalerweise verwendet man IDENTITY für so fortlaufende Zähler.

      bye,
      Helmut

      Comment


      • #4
        Originally posted by hwoess View Post
        Dürfte man erfahren, zu welchem Zweck das benötigt wird? Normalerweise verwendet man IDENTITY für so fortlaufende Zähler.

        bye,
        Helmut
        Es ist immer der gleiche Datensatz nur das feld soll geändert werden.
        AlexDgG

        Es gibt keine dummen Fragen. Nur dumme Antworten!

        Comment


        • #5
          Originally posted by ebis View Post
          Lies den Wert gleich beim update aus...
          [HIGHLIGHT="SQL"]BEGIN TRAN;

          CREATE Table Test ( ID INT )
          INSERT INTO Test SELECT 1;
          SELECT * FROM Test;

          DECLARE @Test TABLE (old INT, New INT);

          UPDATE Test
          SET ID = ID + 1
          OUTPUT Deleted.ID, Inserted.ID INTO @Test;

          SELECT * FROM @Test;

          ROLLBACK ; -- aufräumen
          [/HIGHLIGHT]
          Danke sieht gut aus!
          AlexDgG

          Es gibt keine dummen Fragen. Nur dumme Antworten!

          Comment

          Working...
          X