pseumin

Sys-Tabellen werden nach Primärschlüssel-Anderung nicht aktualisiert (MSSQL)

Ich ändere per SQL-Befehl den Primärschlüssel einer Tabelle (z. B. eine Spalte hinzufügen). Das
klapp auch wunderbar, im Management Studio wird der neue Primärschlüssen in der Tabellendefinition auch ganz wunderbar
angezeigt.
ALTER TABLE tabelle DROP CONSTRAINT pkey_name
ALTER TABLE tabelle add CONSTRAINT pkey PRIMARY KEY (Spalte1, Spalte2, Spalte3)
Wenn ich jetzt aber zur Überprüfung wieder die Systemtabellen abfrage, so wird immer noch der alte Schlüssel angezeigt.
select co.name, sc.name from sys.key_constraints co, sys.tables ta, sys.indexes ix, sys.index_columns ic, sys.syscolumns sc
where ta.object_id = co.Parent_object_id 
and ix.object_id = co.Parent_object_id 
and ic.object_id = co.Parent_object_id 
and sc.id = co.Parent_object_id 
and ix.is_primary_key = 1
and ix.index_id = ic.index_id 
and sc.colid = ic.index_column_id
and ta.name = 'tabelle'  

Warum werden die Systemtabellen nicht mit aktualisiert.
Muss ich noch eine Art "Refresh" machen ?

Danke, Pseumin
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 93307

Url: https://administrator.de/forum/sys-tabellen-werden-nach-primaerschluessel-anderung-nicht-aktualisiert-mssql-93307.html

Ausgedruckt am: 19.06.2025 um 05:06 Uhr

Logan000
Logan000 31.07.2008 um 15:11:39 Uhr
Goto Top
Moin moin

Wenn ich jetzt aber zur Überprüfung wieder die Systemtabellen abfrage, so wird immer noch der alte Schlüssel angezeigt.
Das kann ich beim besten willen nicht reproduzieren.

Auf SQL 2k5 Express Advanced kann ich sogar beide SQL Statements in einer Abfrage ausführen und bekomme den neuen Schlüssel angezeigt.

Gruß L.
Pseumin
Pseumin 04.08.2008 um 09:29:11 Uhr
Goto Top
Moin.

Dank deines Hinweises habe ich den Fehler jetzt gefunden.
Statt
and sc.colid = ic.index_column_id 
muss es
and sc.colid = ic.column_id 
heissen.

Gruß, Pseumin