Forums Neueste Beiträge
 

Merkwürdiges Gross-Klein Verhalten

16/01/2009 - 07:35 von Henry Habermacher | Report spam
Hallo zusammen

Ich habe hier etwas merkwürdiges, was ich mir nicht erklàren kann.
Umfeld: SQL2005
Collation: SQL_Latin1_General_GP1_CI_AS auf allen Ebenen

Ich habe einige Tabellen, die zueinander in Relation stehen. Teilweise ist
Aktualisierungsweitergabe eingestellt.

Bei einer Tabelle (Employees) habe ich seit einigen Tagen ein merkwürdiges
Verhalten. Die Tabelle hat einen Primàrschlüssel PID NVARCHAR(10). Dieser
wird von ca. 20 anderen Tabellen referenziert. Auf 3 Tabellen ist von dieser
PID die Aktualisierungsweitergabe eingestellt.

Wenn ich folgendes Statment ausführe:

UPDATE Employees SET PID = 'X123123' WHERE PID = 'x123123'

Dann gibt das einen Fehler, dass diese PID in einer anderen Tabelle
referenziert werde und nicht geàndert werden könne.

UPDATE Employees SET PID = 'x123123' WHERE PID = 'x123123'
führt aber zu keinem Fehler. 1 row(s) updated.

Zum einen àndere ich diese PID nicht, ich setze sie nur auf Grossbuchstaben.
Mit der Standard Collation, die ich überall kontrolliert habe (sp_help) darf
das nicht zu einem Fehler bezüglich verletzung der RI führen und hat bis
früher auch nicht gemacht, wie ich in einer Kopie der Datenbank
nachkontrolliert habe (gleich Struktur, nur andere Daten)

Zum anderen hat's in der angemeckerten Tabelle überhaupt keine Datensàtze
mehr drin, die diese PID referenziert. Beim ersten Auftreten haben wir diese
allesamt rausgelöscht (waren nur History Sàtze auf die wir verzichten
konnten).

Ich habe dann mal alle Constraints die zu dieser Tabelle führen uncheckt,
dann die PID mit einem Update auf UPPER(PID) gesetzt und dann die
Constraints wieder gesetzt. Das sollte auch den kompletten PK angefasst und
allenfalls geupdatet haben, falls da irgendwelche Inkonsistenzen drin
gewesen wàren. Aber nun kommt das verrückte. Jetzt ist es gerade anders rum:
Wenn ich nun

UPDATE Employees SET PID = 'x123123' WHERE PID = 'X123123'

ausführe, bekomme ich den gleichen Fehler wieder. Ich habe nochmals überall
die Collation kontrolliert, sie ist überall identisch.

Was noch merkwürdiger ist: Bei einzelnen SQL Statements, die Abfragen über
mehrere Tabellen und Joins über genau dieses Feld drin haben, werden mir
einzelne Datensàtze nicht angezeigt, nàmlich genau diese, welche sich so
merkwürdig verhalten.

Was könnte das sein und wie werde ich dieses Problem wieder los.

Danke für jegliche Tipps.

Henry
 

Lesen sie die antworten

#1 Elmar Boye
16/01/2009 - 10:01 | Warnen spam
Hallo Henry,

Henry Habermacher schrieb:
Ich habe hier etwas merkwürdiges, was ich mir nicht erklàren kann.
Umfeld: SQL2005
Collation: SQL_Latin1_General_GP1_CI_AS auf allen Ebenen



Ich hatte Deinen Thread in der internen MVP SQL Server NG gesehen.
Dort waren, soweit ich ihn verfolgt habe, alle Möglichkeiten
aufgeführt worden, mögliche Defekte zu erkennen und zu beheben.

Und Deine letzte Aussage dort war, die Probleme wàren behoben.
Hat sich das als Fehlschluß erwiesen?

Gruß Elmar

Ähnliche fragen