Veritabanında tablolar arası ilişkiyi nasıl bulabilirim?

by Volkan Atasever 22. Ekim 2009 03:28

Database Yöneticileri ve SQL Server geliştiricileri genellikle bu ilişkileri bulmak için hızlı bir script'e gereksinim duyar. Normal yollardan incelemek gerçekten bazen imkansıza yakın bazen ise uzun zamanlar alan bir işkenceye dönüşmektedir. Aşağıda SQL Server NewsGroup'larda rastladaığım bir scripte yer vermek istiyorum. Oldukça kullanışlı bir script. Yeni başlayanların ve hatta piyasada deneyimli olanların dahi uzun kağıtlarda bu bağlantıları çözmeye çalıştığına şahit olduğum için faydalı olacağına eminim. AdventureWorks veritabanına ait bir örnek çıktı da aşağıda verilmiştir. Ana tabloyu ve bunun alt tabloları ile beraber foreign keylerin dökümünüde vermektedir.
 
Select
 
object_name(rkeyid) Parent_Table,
 
object_name(fkeyid) Child_Table,
 
object_name(constid) FKey_Name,
 
c1.name FKey_Col,
 
c2.name Ref_KeyCol
 
From
 
sys.sysforeignkeys s
 
Inner join sys.syscolumns c1
 
on ( s.fkeyid = c1.id And s.fkey = c1.colid )
 
Inner join syscolumns c2
 
on ( s.rkeyid = c2.id And s.rkey = c2.colid )
 
Order by Parent_Table,Child_Table


Script'in AdventureWorks örnek database'in den alınan çıktısı:


Yorum ekle




  Country flag

biuquote
  • Yorum
  • Canlı önizleme
Loading



Son Yorumlar

Comment RSS

INETA User Group

Yazılım