اسکریپت: لیست جداول با بیشترین ارتباطات (Relationship)

اسکریپت: لیست جداول با بیشترین ارتباطات (Relationship)

نوشته شده توسط: زهرا فرهنگی
تاریخ انتشار: ۱۰ آبان ۱۳۹۷
آخرین بروزرسانی: ۲۳ مهر ۱۴۰۲
زمان مطالعه: 5 دقیقه
۰
(۰)

مقدمه

توسط دستور زیر می‌توان لیست جداول با بیشترین ارتباط (شامل FKها و ارجاعات از جداول دیگر) را بدست آورد.

select tab as [table],
count(distinct rel_name) as relationships,
count(distinct fk_name) as foreign_keys,
count(distinct ref_name) as [references],
count(distinct rel_object_id) as related_tables,
count(distinct referenced_object_id) as referenced_tables,
count(distinct parent_object_id) as referencing_tables
from
(select schema_name(tab.schema_id) + '.' + tab.name as tab,
fk.name as rel_name,
fk.referenced_object_id as rel_object_id,
fk.name as fk_name,
fk.referenced_object_id,
null as ref_name,
null as parent_object_id
from sys.tables as tab
left join sys.foreign_keys as fk
on tab.object_id = fk.parent_object_id
union all
select schema_name(tab.schema_id) + '.' + tab.name as tab,
fk.name as rel_name,
fk.parent_object_id as rel_object_id,
null as fk_name,
null as referenced_object_id,
fk.name as ref_name,
fk.parent_object_id
from sys.tables as tab
left join sys.foreign_keys as fk
on tab.object_id = fk.referenced_object_id) q
group by tab
order by count(distinct rel_name) desc
  • Table: نام جدول به همراه نام schema
  • Relationships: تعداد ارتباطات (FK ها و FK reference ها)
  • Foreign_Keys: تعداد FK های یک جدول
  • References: تعداد FK reference ها از جداول دیگر
  • Related_Tables: تعداد جداول متمایز شرکت کننده در relation (فارق از نوع ارتباط)
  • referenced_tables: تعداد جداول متمایزی که جدول مورد نظر توسط FK ها به آنها رجوع کرده است (Primary Table) (توجه داشته باشید که یک جدول ممکن است چندین بار توسط جدولی مورد ارجاع قرار گیرد بنابراین تعداد FK ها و تعداد جداول مورد ارجاع میتواند یکسان نباشد)
  • Referencing_Tables: تعداد جداول متمایزی که به جدول مورد نظر ارجاع داده اند

یک نمونه از اجرای دستور بالا روی دیتابیس AdventureWorks

برای بدست آوردن اطلاعات بیش‌تر در مورد اسکریپت های پرکاربرد SQL ، به مقاله زیر مراجعه کنید.

چه رتبه ای می‌دهید؟

میانگین ۰ / ۵. از مجموع ۰

اولین نفر باش

title sign
دانلود مقاله
اسکریپت: لیست جداول با بیشترین ارتباطات (Relationship)
فرمت PDF
صفحه
حجم 1 مگابایت
دانلود اسکریپت
title sign
معرفی نویسنده
زهرا فرهنگی
مقالات
51 مقاله توسط این نویسنده
محصولات
0 دوره توسط این نویسنده
زهرا فرهنگی

کارشناس پایگاه داده، در حال کسب تجربه در زمینه‌های تحلیل انباره داده، BI، بهینه سازی پایگاه‌های داده

title sign
دیدگاه کاربران