Hallo liebe Leute,
.. ich möchte alle FK-Beziehungen in meiner DB als Klartext auslesen und hab jetzt nach langem probieren & scheitern das untere SQL Kommndo zusammengebracht.
Was mir nicht ganz klar ist wie das "and" Statement (durch zufall probiert -ein "where" würde für mich irgendwie passender klingen) in den beiden join Anweisungen eigentlich "funktioniert" und irgendwie hab ich das Gefühl als würde ich das Pferd von hinten aufzäumen.
Also Abfrage macht was sie soll (freu) wirkt aber für mich (Anfänger) "unrund".
- danke für eure Tipps und Hinweise
Michael
[highlight=sql] select FK.name 'Constr. Bezeichnung', Tab.name 'TabPK',
COL.name 'ColPK' , Tab1.name 'TabFK', COL1.name 'ColFK'
from sys.foreign_key_columns as fkCol
inner join sys.foreign_keys as FK on FK.object_id = fkCol.constraint_object_id -- FK Name auflösen
join sys.tables as Tab on FKCOl.parent_object_id = Tab.object_id
join sys.tables as Tab1 on fkCol.referenced_object_id = Tab1.object_id
left join (sys.columns as COL join sys.tables on sys.tables.object_id = COL.object_id)
on fkCol.parent_column_id = COL.column_id and sys.tables.object_id = fkCol.parent_object_id
left join (sys.columns as COL1 join sys.tables as xxy on xxy.object_id = COL1.object_id)
on fkCol.referenced_column_id = COL1.column_id and xxy.object_id = fkCol.referenced_object_id[/highlight]
.. ich möchte alle FK-Beziehungen in meiner DB als Klartext auslesen und hab jetzt nach langem probieren & scheitern das untere SQL Kommndo zusammengebracht.
Was mir nicht ganz klar ist wie das "and" Statement (durch zufall probiert -ein "where" würde für mich irgendwie passender klingen) in den beiden join Anweisungen eigentlich "funktioniert" und irgendwie hab ich das Gefühl als würde ich das Pferd von hinten aufzäumen.
Also Abfrage macht was sie soll (freu) wirkt aber für mich (Anfänger) "unrund".
- danke für eure Tipps und Hinweise
Michael
[highlight=sql] select FK.name 'Constr. Bezeichnung', Tab.name 'TabPK',
COL.name 'ColPK' , Tab1.name 'TabFK', COL1.name 'ColFK'
from sys.foreign_key_columns as fkCol
inner join sys.foreign_keys as FK on FK.object_id = fkCol.constraint_object_id -- FK Name auflösen
join sys.tables as Tab on FKCOl.parent_object_id = Tab.object_id
join sys.tables as Tab1 on fkCol.referenced_object_id = Tab1.object_id
left join (sys.columns as COL join sys.tables on sys.tables.object_id = COL.object_id)
on fkCol.parent_column_id = COL.column_id and sys.tables.object_id = fkCol.parent_object_id
left join (sys.columns as COL1 join sys.tables as xxy on xxy.object_id = COL1.object_id)
on fkCol.referenced_column_id = COL1.column_id and xxy.object_id = fkCol.referenced_object_id[/highlight]
Comment