اسکریپت لیست ستونهای Non Nullable جداول یک دیتابیس
اسکریپت SQL Server برای استخراج نام ستونهای Non Nullable در جداول دیتابیس، همراه با نام جدول، نوع داده و وضعیت Nullable بودن.
17 آبان 1405
لینک کوتاه
اسکریپت لیست ستونهای Non Nullable جداول یک دیتابیس
در SQL Server، ستونهای Non Nullable به ستونهایی گفته میشود که اجازه ذخیره مقدار NULL را ندارند.این ستونها باید هنگام درج اطلاعات، مقدار معتبری دریافت کنند؛ البته بسته به نوع ستون و تنظیمات آن، ممکن است مقدار بهصورت خودکار توسط سیستم تولید شود.
شناسایی ستونهای Non Nullable یکی از کارهای مهم در مدیریت دیتابیس، بررسی ساختار جداول و تحلیل محدودیتهای دادهای است.
در بسیاری از پروژههای نرمافزاری، جداول دیتابیس دارای تعداد زیادی ستون هستند و بررسی دستی ویژگیهای هر ستون میتواند زمانبر باشد.
با استفاده از یک اسکریپت مناسب میتوان تمام ستونهای Non Nullable موجود در جداول یک دیتابیس را استخراج کرد و اطلاعات موردنیاز را در قالب یک خروجی منظم مشاهده کرد.
🌟 آیا میخواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟با دوره آموزشی SQL Server ما، شما میتوانید به راحتی و با روشی عملی، تمام مهارتهای لازم را یاد بگیرید!این دوره به شما آموزش میدهد که چگونه دادهها را به بهترین شکل مدیریت کنید، گزارشهای قدرتمند بسازید و به تحلیلهای عمیق دست یابید.با محتوای جذاب و پروژههای واقعی، شما نه تنها تئوری را یاد میگیرید، بلکه تواناییهای عملی خود را نیز تقویت میکنید.پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشنتر بردارید!
اهمیت شناسایی ستونهای Non Nullable در SQL Server
شناخت ستونهایی که قابلیت پذیرش مقدار NULL را ندارند، به توسعهدهندگان و مدیران دیتابیس کمک میکند تا ساختار اطلاعات را بهتر درک کنند. برای مثال، هنگام درج یک رکورد جدید در جدول کاربران، ممکن است ستون نام کاربری اجباری باشد و اجازه ذخیره مقدار خالی از نوع NULL را نداشته باشد.در چنین شرایطی، اگر هنگام اجرای دستور INSERT مقدار مناسبی برای این ستون ارسال نشود و مقدار پیشفرض یا تولید خودکار نیز تعریف نشده باشد، SQL Server خطا ایجاد میکند.
بررسی این ستونها در شرایط زیر کاربرد دارد:
-
تحلیل ساختار جداول یک دیتابیس.
-
شناسایی فیلدهای اجباری هنگام ثبت اطلاعات.
-
بررسی محدودیتهای موجود در طراحی دیتابیس.
-
آمادهسازی مستندات فنی پروژه.
-
بررسی وابستگیهای میان دیتابیس و کدهای برنامهنویسی.
-
انتقال اطلاعات از یک دیتابیس به دیتابیس دیگر.
-
بررسی مشکلات احتمالی هنگام اجرای دستورات INSERT و UPDATE.

اسکریپت لیست ستونهای Non Nullable جداول یک دیتابیس
برای استخراج ستونهایی که مقدار NULL را نمیپذیرند، میتوان از نماهای سیستمی SQL Server استفاده کرد.این نماها اطلاعات مربوط به جداول، ستونها و ویژگیهای ساختاری آنها را در اختیار قرار میدهند.
اسکریپت زیر نام Schema، نام جدول، نام ستون، نوع داده و وضعیت Nullable بودن هر ستون را نمایش میدهد؛ البته فقط ستونهای Non Nullable در خروجی قرار میگیرند.
SELECT
s.name AS SchemaName,
t.name AS TableName,
c.name AS ColumnName,
ty.name AS DataType,
c.max_length AS MaxLength,
c.precision AS NumericPrecision,
c.scale AS NumericScale,
c.is_identity AS IsIdentity,
c.is_computed AS IsComputed,
c.is_nullable AS IsNullable
FROM sys.tables AS t
INNER JOIN sys.schemas AS s
ON t.schema_id = s.schema_id
INNER JOIN sys.columns AS c
ON t.object_id = c.object_id
INNER JOIN sys.types AS ty
ON c.user_type_id = ty.user_type_id
WHERE c.is_nullable = 0
ORDER BY
s.name,
t.name,
c.column_id;
این اسکریپت را میتوان در محیط SQL Server Management Studio اجرا کرد.
توجه داشته باشید که اطلاعات خروجی مربوط به دیتابیس فعالی است که در زمان اجرای اسکریپت انتخاب شده است.
بررسی بخشهای مختلف اسکریپت
۱. استفاده از sys.tables
نمای سیستمی sys.tables اطلاعات مربوط به جدولهای کاربر را ارائه میدهد.با استفاده از این نما، جدولهای موجود در دیتابیس شناسایی میشوند.
۲. استفاده از sys.schemas
در SQL Server، هر جدول به یک Schema تعلق دارد.برای مثال، ممکن است جدولی با نام Customers در Schema پیشفرض dbo قرار گرفته باشد.
اتصال sys.schemas به sys.tables کمک میکند نام دقیق Schema نیز در خروجی نمایش داده شود.
۳. استفاده از sys.columns
نمای sys.columns اطلاعات ستونهای مربوط به اشیای مختلف دیتابیس را نگهداری میکند.با اتصال این نما به sys.tables از طریق object_id، ستونهای هر جدول استخراج میشوند.
۴. استفاده از sys.types
این نما برای شناسایی نوع داده ستونها استفاده میشود.برای مثال، نوع داده ستون ممکن است int، varchar، nvarchar، date یا decimal باشد.
۵. شرط c.is_nullable = 0
مهمترین بخش اسکریپت، این شرط است:WHERE c.is_nullable = 0
ویژگی is_nullable مشخص میکند که ستون امکان پذیرش مقدار NULL را دارد یا خیر.مقدار صفر نشاندهنده Non Nullable بودن ستون است و مقدار یک نشان میدهد که ستون میتواند NULL بپذیرد.
۶. مرتبسازی نتایج
با استفاده از دستور ORDER BY، خروجی ابتدا بر اساس نام Schema، سپس نام جدول و در نهایت ترتیب ستونها مرتب میشود. این کار بررسی نتایج را آسانتر میکند.خروجی اسکریپت چه اطلاعاتی دارد؟
فرض کنید دیتابیس شما شامل جدولهای Customers، Orders و Products باشد.خروجی اسکریپت میتواند ساختاری مشابه نمونه زیر داشته باشد
| IsNullable | DataType | ColumnName | TableName | SchemaName |
| 0 | int | CustomerID | Customers | dbo |
| 0 | nvarchar | FullName | Customers | dbo |
| 0 | int | OrderID | Orders | dbo |
| 0 | nvarchar | ProductName | Products | dbo |
این جدول صرفاً یک نمونه فرضی است و نتایج واقعی به ساختار دیتابیس شما بستگی دارد.
ستون SchemaName نام Schema، ستون TableName نام جدول و ستون ColumnName نام ستون را نشان میدهد.
DataType نوع داده و IsNullable وضعیت پذیرش مقدار NULL را مشخص میکند.
ویژگی MaxLength نیز طول تعریفشده ستون را نمایش میدهد.
برای انواع داده عددی و برخی انواع دیگر، تفسیر طول باید متناسب با نوع داده انجام شود.
برای مثال، طول nvarchar در این نما بر حسب بایت گزارش میشود، نه تعداد کاراکتر.
اسکریپت سادهتر برای استخراج ستونهای Non Nullable
اگر فقط نام جدول و نام ستون برای شما اهمیت دارد، میتوانید از نسخه کوتاهتر زیر استفاده کنید:SELECT
TABLE_SCHEMA,
TABLE_NAME,
COLUMN_NAME,
DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE IS_NULLABLE = 'NO'
ORDER BY
TABLE_SCHEMA,
TABLE_NAME,
ORDINAL_POSITION;
نمای INFORMATION_SCHEMA.COLUMNS نیز اطلاعات ستونهای قابل مشاهده در دیتابیس را ارائه میدهد.
در این روش، شرط IS_NULLABLE = 'NO' باعث میشود فقط ستونهایی نمایش داده شوند که امکان پذیرش NULL ندارند.
نسخه اول با استفاده از نماهای سیستمی sys اطلاعات بیشتری درباره ساختار ستونها ارائه میدهد و برای بررسیهای تخصصی SQL Server مناسب است. نسخه دوم سادهتر است و برای تهیه فهرست اولیه ستونهای اجباری کاربرد دارد.
جمعبندی
اسکریپت لیست ستونهای Non Nullable جداول یک دیتابیس، ابزاری کاربردی برای بررسی ساختار دیتابیس در SQL Server است.با استفاده از ویژگی is_nullable در نمای sys.columns میتوان ستونهایی را که اجازه پذیرش مقدار NULL ندارند، بهسادگی استخراج کرد.
این روش برای مستندسازی دیتابیس، بررسی فیلدهای اجباری، تحلیل ساختار جداول و شناسایی محدودیتهای دادهای مفید است.
اگر علاوه بر Non Nullable بودن، هدف شما شناسایی ستونهایی باشد که هنگام درج رکورد باید حتماً مقدار دریافت کنند، لازم است ویژگیهایی مانند IDENTITY، ستونهای محاسباتی و مقادیر پیشفرض نیز در بررسی لحاظ شوند.



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