AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Wie lange gilt ein WITH(UPDLOCK)?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie lange gilt ein WITH(UPDLOCK)?

Ein Thema von Bart Simpson · begonnen am 12. Feb 2003 · letzter Beitrag vom 12. Feb 2003
 
Bart Simpson

Registriert seit: 3. Dez 2002
9 Beiträge
 
#1

Wie lange gilt ein WITH(UPDLOCK)?

  Alt 12. Feb 2003, 14:34
Ich arbeite an einem größerem Projekt mit dem M$ SQL Server 2000.
Ich habe dafür einige ziemlich komplexe Stored Procedures geschrieben die viele Tabellen meiner DB bearbeiten.
Nun bin ich auf ein Problem gestossen auf dass ich bisher keine Antwort gefunden hab:
Ich füge innerhalb einer Stored Procedure Daten an eine Tabelle mit einem Statement wie diesem an:

INSERT INTO Tabelle 1 (Feld1,Feld2)
SELECT Feld1, Feld2 FROM Tabelle2

Soweit kein Problem, aber eines meiner Felder ist eine (Integer) ID Spalte, deren neuen Wert ich ermitteln muss:

SELECT COALESCE(MAX(ID)+1,1)AS NewID from Tabelle1

Normalerweise hänge ich daran noch ein WITH(UPDLOCK), damit die Tabelle so lange gesperrt ist, bis ich fertig bin.
Wenn ich das Ganze nun in einen INSERT Aufruf packe ensteht in etwa so was:

INSERT INTO Tabelle 1 (Feld1,Feld2)
SELECT
(SELECT COALESCE(MAX(ID)+1,1)AS NewID from Tabelle1 WITH(UPDLOCK)),
Feld2 FROM Tabelle2

Nun meine Frage: Is das WITH(UPDLOCK) überhaupt nötig, oder ist die Tabelle sowieso gesperrt, weil ich grade ein INSERT ausführen welches wiederum meine neue ID ermittelt?

Wenn's nötig ist: Wie lange gilt das dann? Nur für den INSERT Befehl oder etwa für die ganze Stored Procedure? Letzteres wäre ziemlich blöd, denn die läuft noch _wirklich_ lange weiter und würde mir dann recht viel blockieren...

Irgendeine Ahnung? Wenn ja, kann mir jemand irgendwelche Referenzen zeigen, wo sowas nachzulesen steht? Ich würde das Ganz nämlich irgendwann gern mal verkaufen und dann wäre es gut hier mit "offiziellen" Argumenten zu kommen
Bin aber auch schon dankbar wenn mir irgendwer was dazu sagen könnte...

Bart Simpson
Naeser's Gesetz: Man kann etwas narrensicher machen - aber nicht VERDAMMT narrensicher!
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz