Hallo,
ich hoffe ich kann mein Problem korrekt schildern:
Ich habe seit einiger Zeit eine MS-SQL-Server-2000 (SP3) Datenbank auf die ich mittels ODBC aus einem MS-Access2000 (mdb -- kein Projekt) zugreife.
Seit ein paar Wochen (der genaue Zeitpunkt ist leider unbekannt) kann ich in einer Tabelle keine Datensätze mehr anlegen, editieren oder löschen. Bei genauerer Kontrolle ist mir aufgefallen, daß auf dieser Tabelle ausschliesslich Tabllen s-Lock's eingetragen sind, während auf allen anderen Tabellen jeweils nur eine ID, bzw. eine Seite mit S versehen ist, die TAB selbst jeweils nur mit IS.
Auf der Suche nach dem Grund dafür habe ich die DB erst einmal auf einen Testserver importiert (Backup eingespielt) und habe das Problem dort 1:1 wiedergefunden. Dann habe ich ein neues MS-Access Frontend erstellt, daß nichts tut ausser per ODBC auf die eine Tabelle zuzugreifen. (also Tabelle verknüpft und sonst nichts eingestellt.) Beim Öffnen der Tabelle in Access sehe ich sofort wieder das TAB - S - Lock, ohne, daß ich auch nur versucht hätte irgendwas zu editieren.
Ich habe als nächstes die Tabelle mittels dem Enterprisemanager kopiert. (Wodurch ja alle Trigger, Constraints etc. "verloren" gehen.) Der Effekt bleibt weiterhin derselbe: Öffnen der kopierten Tabelle: sofort S-Lock auf TAB.
Ich bin echt ratlos, woran das liegen könnte - jede andere Tabelle (und deren Kopien) kann ich ganz normal aufmachen und bekomme eine ID/Seitensperre S und auf der Tab lediglich ein IS -- nur diese eine Tabelle sperrt sich dauernd wieder.
Ich bin der Meinung, daß es nicht an irgendwelchen Versionen liegen kann, da sich ja alle Tabellen bis auf diese eine ganz normal verhalten und keine Version verändert wurde meines Wissens. Server identisch, Access identisch, ODBC identisch. Der Fehler tritt auch mit verschiedenen Versionen auf. (Access 2000, Access 2003, Windows Server 2000(DB), Windows Server 2003(DB))
Es handelt sich imho nicht um diese automatische Sperreneskalation des SQL-Servers, das habe ich bereits mittels den Angaben eines MS-Knowledge-base Artikels geprüft (Lock:Escalation im Profiler gesucht)
Kann man irgendwo einstellen, daß eine Tabelle sofort ein Tab-S-Lock bekommt? Kann man im Access sowas irgendwo einstellen?
Vielen Dank schon mal, falls jemand was weiss,
Frank
ich hoffe ich kann mein Problem korrekt schildern:
Ich habe seit einiger Zeit eine MS-SQL-Server-2000 (SP3) Datenbank auf die ich mittels ODBC aus einem MS-Access2000 (mdb -- kein Projekt) zugreife.
Seit ein paar Wochen (der genaue Zeitpunkt ist leider unbekannt) kann ich in einer Tabelle keine Datensätze mehr anlegen, editieren oder löschen. Bei genauerer Kontrolle ist mir aufgefallen, daß auf dieser Tabelle ausschliesslich Tabllen s-Lock's eingetragen sind, während auf allen anderen Tabellen jeweils nur eine ID, bzw. eine Seite mit S versehen ist, die TAB selbst jeweils nur mit IS.
Auf der Suche nach dem Grund dafür habe ich die DB erst einmal auf einen Testserver importiert (Backup eingespielt) und habe das Problem dort 1:1 wiedergefunden. Dann habe ich ein neues MS-Access Frontend erstellt, daß nichts tut ausser per ODBC auf die eine Tabelle zuzugreifen. (also Tabelle verknüpft und sonst nichts eingestellt.) Beim Öffnen der Tabelle in Access sehe ich sofort wieder das TAB - S - Lock, ohne, daß ich auch nur versucht hätte irgendwas zu editieren.
Ich habe als nächstes die Tabelle mittels dem Enterprisemanager kopiert. (Wodurch ja alle Trigger, Constraints etc. "verloren" gehen.) Der Effekt bleibt weiterhin derselbe: Öffnen der kopierten Tabelle: sofort S-Lock auf TAB.
Ich bin echt ratlos, woran das liegen könnte - jede andere Tabelle (und deren Kopien) kann ich ganz normal aufmachen und bekomme eine ID/Seitensperre S und auf der Tab lediglich ein IS -- nur diese eine Tabelle sperrt sich dauernd wieder.
Ich bin der Meinung, daß es nicht an irgendwelchen Versionen liegen kann, da sich ja alle Tabellen bis auf diese eine ganz normal verhalten und keine Version verändert wurde meines Wissens. Server identisch, Access identisch, ODBC identisch. Der Fehler tritt auch mit verschiedenen Versionen auf. (Access 2000, Access 2003, Windows Server 2000(DB), Windows Server 2003(DB))
Es handelt sich imho nicht um diese automatische Sperreneskalation des SQL-Servers, das habe ich bereits mittels den Angaben eines MS-Knowledge-base Artikels geprüft (Lock:Escalation im Profiler gesucht)
Kann man irgendwo einstellen, daß eine Tabelle sofort ein Tab-S-Lock bekommt? Kann man im Access sowas irgendwo einstellen?
Vielen Dank schon mal, falls jemand was weiss,
Frank
Comment