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ı:

b549b833-c82b-4b1e-bec5-cb08bb73d4fe|1|5.0
Tags: sql server, tips, tablo ilişkileri, tablolar arası, foreign key, relationship, table, server, sql, t-sql, script, sql server 2008
SQL Server