Hallo Zusammen, Problembeschreibung: Ich habe eine Tabelle, die mehr als 100 Spalte hat. Ich hole es mir die Tabelle dynamisch von der Datenbanken und bau es mir auch das GUI entsprechend dynamisch(ja nach dem was einen Datentyp die Spalten haben, Data Format,bit,varchar.... ).Das ganze Aufwand ist so gedacht damit der User auch Spalten in der Datenbank einlegen kann. Um diese Änderungen zu ermöglichen muss auch die Tabelle dynamisch abgefragt und entsprechend das GUI gebaut. Problem ist: die Tabelle könnte mehrere Fremdschlüsseln haben, die ich auch dynamisch abfragen möchte (Wie?). Die Fremdschlüsseln der Tabelle brauche ich um die Bezeichnungen von der Muttertabellen Zb:Fremdschlüssel 1 refreziert auf die TabelleA, Fremdschlüssel 2 refreziert auf die TabelleB ..... Ich möchte durch die Fremdschlüsseln der Bezeichungen von TabelleA, TabelleB,TabelleC...... Durch diese Fremdschlüsseln, hole ich mir die entsprechenden Bezeichungen und stecke ich die in JComboBox. Ich benutze SQLServer für die Datenbanken Für jeden Tipps bedanke ich mich herzlich.
dann musst du die systemtabellen abfragen select * from sys.foreign_keys select * from sys.sysobjects Das ganze darf aber nicht jeder user, damit hast du eventuell berechtigungsprobleme.
Hallo und danke für die super schnelle Antwort. Die befehle, die du mir gegeben hast betrifft die ganze DB. Ich möchte aber diese Abfrage nach dem Fremdschlüssel spezifisch für eine Tabelle . Danke in voraus
Aeron schrieb: > Hallo und danke für die super schnelle Antwort. > Die befehle, die du mir gegeben hast betrifft die ganze DB. > Ich möchte aber diese Abfrage nach dem Fremdschlüssel spezifisch für > eine Tabelle . dann muss du halt noch ein where hinschreiben. Aus der sysobjects bekommt du die ID der tabelle und dann kannst du in foreign_keys die keys auslesen. Die Betroffen spalten stehen noch in foreign_key_columns
Vielen dank es hat super geklappt. Noch eine Frage bitte. Jetzt habe ich die Fremdschlüsseln der Tabelle. Wie hole ich mir durch die Fremdschlüsseln der Bezeichnungen der Ursprüngliche Tabelle? Danke in voraus
Aeron schrieb: > Wie hole ich mir durch die Fremdschlüsseln der Bezeichnungen der > Ursprüngliche Tabelle? über die referenced_object_id und dann wieder mit sysobjects
Um die Fremdschlüsseln zu holen habe ich so gemacht : select * from sys.foreign_keys where parent_object_id=(select id from sys.sysobjects where name='Rechnungen') ich bekomme 20 Fremdschlüsseln. und jetzt wollte ich durch die Fremdschlüsseln der Bezeichnungen der Ursprüngliche Tabelle holen. In SQL bin noch einen Anfänger ... Danke
select c2.name as [Column], o2.name as RefTable, c2.name as RefColumn from sys.sysobjects o join sys.foreign_keys f on f.parent_object_id = o.id join sys.sysobjects o2 on o2.id = f.referenced_object_id join sys.foreign_key_columns c on c.constraint_object_id = f.object_id join sys.columns c2 on c2.object_id = c.parent_object_id and c2.column_id = c.parent_column_id join sys.columns c3 on c3.object_id = c.referenced_object_id and c3.column_id = c.referenced_column_id where o.name='Rechnungen' and o.type = 'U'
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.