اسکریپت لیست جداول به همراه Primary Key آنها
اسکریپت SQL Server برای نمایش فهرست جدولهای دیتابیس به همراه نام Primary Key و ستونهای تشکیلدهنده کلید اصلی هر جدول.
01 آبان 1405
لینک کوتاه
اسکریپت لیست جداول به همراه Primary Key آنها در SQL Server
در پایگاه داده SQL Server، کلید اصلی (Primary Key) یکی از مهمترین اجزای طراحی جدولها است که برای شناسایی منحصربهفرد هر رکورد استفاده میشود.در پروژههای نرمافزاری، بهویژه دیتابیسهای بزرگ، شناخت جدولها و کلیدهای اصلی آنها برای مدیریت دادهها، بررسی ارتباط بین جدولها و مستندسازی ساختار پایگاه داده اهمیت زیادی دارد.
با استفاده از اسکریپتهای SQL میتوان فهرستی از جدولهای دیتابیس به همراه نام Primary Key و ستونهای تشکیلدهنده آنها استخراج کرد.
این روش بهجای بررسی دستی تکتک جدولها، اطلاعات موردنیاز را در قالب یک خروجی منظم نمایش میدهد.
🌟 آیا میخواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟با دوره آموزشی SQL Server ما، شما میتوانید به راحتی و با روشی عملی، تمام مهارتهای لازم را یاد بگیرید!این دوره به شما آموزش میدهد که چگونه دادهها را به بهترین شکل مدیریت کنید، گزارشهای قدرتمند بسازید و به تحلیلهای عمیق دست یابید.با محتوای جذاب و پروژههای واقعی، شما نه تنها تئوری را یاد میگیرید، بلکه تواناییهای عملی خود را نیز تقویت میکنید.پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشنتر بردارید!

Primary Key در SQL چیست؟
Primary Key یا کلید اصلی، محدودیتی در SQL Server است که برای شناسایی یکتای هر رکورد در یک جدول تعریف میشود.ستون یا ترکیبی از ستونهای دارای این محدودیت نباید مقدار تکراری داشته باشند و نمیتوانند مقدار NULL بپذیرند.
برای مثال، در جدول Customers میتوان ستون CustomerID را بهعنوان کلید اصلی تعریف کرد.
در این صورت، هر مشتری با یک شناسه منحصربهفرد مشخص میشود و امکان ثبت دو رکورد با مقدار یکسان برای این کلید وجود ندارد.
کلید اصلی ممکن است از یک ستون یا چند ستون تشکیل شده باشد. اگر چند ستون با هم کلید اصلی را بسازند، به آن کلید اصلی مرکب (Composite Primary Key) گفته میشود.
اسکریپت لیست جدولها به همراه Primary Key
برای استخراج اطلاعات کلیدهای اصلی در SQL Server، میتوان از نماهای سیستمی مانند sys.tables، sys.key_constraints، sys.index_columns و sys.columns استفاده کرد.اسکریپت زیر نام جدولها، نام کلید اصلی و ستونهای تشکیلدهنده آن را در دیتابیس فعلی نمایش میدهد:
SELECT
s.name AS SchemaName,
t.name AS TableName,
kc.name AS PrimaryKeyName,
c.name AS PrimaryKeyColumn,
ic.key_ordinal AS KeyColumnOrder
FROM sys.tables AS t
INNER JOIN sys.schemas AS s
ON t.schema_id = s.schema_id
LEFT JOIN sys.key_constraints AS kc
ON t.object_id = kc.parent_object_id
AND kc.type = 'PK'
LEFT JOIN sys.index_columns AS ic
ON kc.parent_object_id = ic.object_id
AND kc.unique_index_id = ic.index_id
AND ic.key_ordinal > 0
LEFT JOIN sys.columns AS c
ON ic.object_id = c.object_id
AND ic.column_id = c.column_id
ORDER BY
s.name,
t.name,
ic.key_ordinal;
این اسکریپت تمام جدولهای کاربری قابل مشاهده در دیتابیس فعلی را فهرست میکند.
اگر جدولی Primary Key نداشته باشد، نام کلید اصلی و ستون آن بهصورت NULL نمایش داده میشود.
به این ترتیب، علاوه بر جدولهای دارای کلید اصلی، میتوان جدولهایی را که فاقد این محدودیت هستند نیز شناسایی کرد.
بررسی بخشهای مختلف اسکریپت
۱. استفاده از sys.tables
نمای سیستمی sys.tables اطلاعات جدولهای کاربری دیتابیس را نگهداری میکند.در اسکریپت، از این نما بهعنوان نقطه شروع استفاده شده است تا همه جدولها در نتیجه حضور داشته باشند.
ستون name نام جدول را مشخص میکند و object_id شناسهای است که برای ارتباط با سایر نماهای سیستمی به کار میرود.
۲. استفاده از sys.schemas
در SQL Server، هر جدول به یک Schema تعلق دارد.برای مثال، dbo یکی از اسکیمای رایج است، اما ممکن است جدولهای دیگری در اسکیمای اختصاصی برنامه قرار داشته باشند.
اتصال sys.tables به sys.schemas باعث میشود نام اسکیمای هر جدول نیز در خروجی نمایش داده شود.
این اطلاعات در دیتابیسهایی که چند اسکیمای مختلف دارند، برای تشخیص دقیق جدولها ضروری است.
۳. استفاده از sys.key_constraints
نمای sys.key_constraints اطلاعات مربوط به محدودیتهای کلیدی، از جمله Primary Key و Unique Constraint را ارائه میکند.در اسکریپت، شرط kc.type = 'PK' باعث میشود فقط محدودیتهای مربوط به کلید اصلی انتخاب شوند.
ستون kc.name نیز نام تعریفشده برای Primary Key را نمایش میدهد.
۴. استفاده از sys.index_columns
کلید اصلی در SQL Server با یک شاخص یکتا پشتیبانی میشود.نمای sys.index_columns اطلاعات ستونهای استفادهشده در شاخص را در اختیار قرار میدهد.
از طریق ستون key_ordinal میتوان ترتیب ستونهای تشکیلدهنده کلید اصلی را مشخص کرد.
این ویژگی برای کلیدهای مرکب اهمیت زیادی دارد؛ زیرا ترتیب ستونها در تعریف کلید باید حفظ شود.
۵. استفاده از sys.columns
نمای sys.columns اطلاعات ستونهای جدول را نگهداری میکند.در این اسکریپت، از آن برای استخراج نام ستونهای تشکیلدهنده Primary Key استفاده شده است.
ترکیب شناسه جدول و شناسه ستون کمک میکند نام ستون صحیح شناسایی شود و از اشتباه گرفتن ستونهای همنام در جدولهای مختلف جلوگیری شود.
چرا از LEFT JOIN استفاده شده است؟
یکی از نکات مهم اسکریپت، استفاده از LEFT JOIN برای اتصال جدولها به اطلاعات Primary Key است.اگر از INNER JOIN استفاده کنیم، جدولهایی که کلید اصلی ندارند از نتیجه حذف میشوند.
اما با LEFT JOIN، تمام جدولها نمایش داده میشوند؛ حتی اگر هیچ Primary Key برای آنها تعریف نشده باشد.
این ویژگی هنگام بررسی کیفیت طراحی دیتابیس بسیار مفید است؛ زیرا میتوان بهراحتی جدولهایی را که به بررسی بیشتر نیاز دارند شناسایی کرد.
کلید اصلی مرکب چگونه نمایش داده میشود؟
گاهی کلید اصلی از ترکیب چند ستون تشکیل شده است.برای مثال، در جدول OrderDetails ممکن است ترکیب OrderID و ProductID بهعنوان کلید اصلی تعریف شود.
در این شرایط، اسکریپت هر ستون را در یک ردیف جداگانه نمایش میدهد.
مقدار KeyColumnOrder نیز ترتیب ستونها را مشخص میکند.
برای نمونه، اگر OrderID اولین ستون و ProductID دومین ستون کلید اصلی باشد، ترتیب آنها بهترتیب با اعداد یک و دو نمایش داده میشود.
این اطلاعات برای مستندسازی و بررسی ساختار کلیدهای مرکب کاربرد دارد.
کاربردهای اسکریپت در پروژههای واقعی
اسکریپت لیست جدولها به همراه Primary Key در موقعیتهای مختلفی استفاده میشود.هنگام تحلیل یک دیتابیس قدیمی، ممکن است مستندات کاملی از ساختار جدولها وجود نداشته باشد.
اجرای این اسکریپت به توسعهدهنده کمک میکند کلیدهای اصلی را سریعتر شناسایی کند.
در فرایند طراحی نرمافزار نیز این اطلاعات برای ساخت مدلهای داده، بررسی روابط بین موجودیتها و آمادهسازی مستندات فنی مفید است.
همچنین هنگام انتقال دیتابیس یا بازطراحی ساختار جدولها، بررسی کلیدهای اصلی اهمیت زیادی دارد.
البته وجود Primary Key بهتنهایی تمام ویژگیهای طراحی مناسب را تضمین نمیکند.
انتخاب ستون مناسب، نوع داده، نحوه تولید شناسه و ارتباط آن با سایر جدولها نیز باید با توجه به نیاز پروژه بررسی شوند.



کاربران ما
شما هم نظرتون با ما دریاره “اسکریپت لیست جداول به همراه Primary Key آنها” اشتراک بزارید
برای ارسال نظر لطفا ورود یا ثبت نام کنید