MsSQL Server 2000: Constraints einer Spalte ermitteln?

DataFox

Erfahrenes Mitglied
Hi

wie kann man heraus finden ob eine Spalte

- ein primary key ist?
- auto_increment ist?

ich werde aus diesen cryptischen Constraint-Bezeichnungen wie FK_TEST_BL___1441F17C nicht schlau. Weder in Aqua Data Studio noch im Query Analyzer kriege ich brauchbare Infos dazu.

In MySQL war ich PHPMyAdmin gewohnt, da war das kinderleicht festzustellen...

freue mich über einen Tipp!

Gruß
Laura
 
Hi Laura,

zur Kryptik:
FK : Foreign Key
PK : Primary Key
IX : Index

Dies sind natürlich nur Standardvorgaben...

Bei MSSQL kann ich dir eigentlich nur "SQL Server Management Studio" empfehlen.
Hier hast du alles auf einen Blick und wie ich meine ein gutes Tool zum Verwalten deiner Datenbanken.

Hoffe ich habe dir ein wenig weitergeholfen.

greets
rip66
 
Moin Datafox,

die paar Regeln, nach denen so ein Constraintname zusammengekloppt wird, ergeben wirklich schwer zu merkende Namen. Gilt sowohl bei MSSQL wie auch Oracle.
Du kannst die Konventionen relativ schnell nachvollziehen mit einem Blick in die sysobjects-VIEW und Dir mit einem Select die "Name"s ansehen und die dazugehörigen Kategorien in der xtype-Spalte (z.B. "where xtype=PK". Und ein Seitenblick auf die Spalte parent_obj sagt Dir auch, an welchem Object Deine Constraint hängt.

Und da der nächstliegende Schritt danach ein "Umbenennen der Constraints in Namen, die ich mir merken kann" wäre, hat der sympathische Weltmarktführer auch das Utiltily sp_rename beigelegt.
Damit kannst Du dann ein simples ...
sp_rename FK_TEST_BL___1441F17C, FK_TEST_Kunde
machen, wenn Du es so schneller wiederfindest.

Grüße
Biber
P.S. Wenn Du praktikable (=mit echten Datenbanken funktionierende) Constraint-Namenskonventionen ausgeknobelt hast UND dafür weniger als 30 Zeichen brauchst:
Bitte schreib mir sofort einer Nachricht.
Ich bin damit bisher gescheitert. Bei komplexeren Relationen/Sachverhalten waren die nach "meinen" Regeln automatisch generierten Constraint-Namen irgendwann NICHT mehr eindeutig auf den ersten 30 Stellen.
 
Hallo Laura,

im SQL Server findest Du in der master DB zahlreiche Views die unter dem Owner INFORMATION_SCHEMA geführt werden.

Versuch mal
SELECT * FROM [INFORMATION_SCHEMA].[CONSTRAINT_COLUMN_USAGE]
oder
SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE

Vielleicht führt das in die gesuchte Richtung.
 
Zurück