خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


لیست کردن تمامی ستون های Nullable جداول یک دیتابیس در SQL Server

لیست کردن تمامی ستون های Nullable جداول یک دیتابیس در SQL Server
ستون های قابل Null یا Nullable در SQL Server، می توانند منجر به مشکلات performance ای شوند، البته این جمله قطعاً به این معنا نیست که ستون های Nullable همیشه باعث مشکلات performance ای می شوند اما اگر مشکلات performance ای داشته باشید، شناسایی ستون های nullable می تواند به طور بالقوه سرنخ هایی راجع به اینکه این مسئله کجاست، ارائه دهد. گاهی اوقات ایجاد یک ستون NOT NULL می تواند به بهبود performance کمک کند.

نرم افزار سامانه مودیان راهکار
منظور از Nullable ستون هایی است که امکان NULL را دارند و می توانید این ستون ها را خالی رد کنید و چیزی در آنها وارد نکنید.


در ذیل، یک اسکریپتی را مشاهده می کنید که کلیه ستون های nullable را در SQL Server لیست کنید.

INFORMATION_SCHEMA.COLUMNS

View سیستمی INFORMATION_SCHEMA.COLUMNS ستون های Nullable در دیتابیس فعلی و در کلیه Table ها را برای کاربر لیست می کند. در واقع در خروجی این View، فیلدی با نام IS_NULLABLE وجود دارد که برای ستون های Nullbale، مقدار Yes در آن درج شده است.
کافیست یک دیتابیس را در SQL Server انتخاب کنید و کوئری زیر را در New Query کپی و اجرا کنید و به خروجی ان توجه کنید.

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS WHERE IS_NULLABLE = 'YES';

INFORMATION_SCHEMA.COLUMNS with Fewer Columns Specified

تعداد ستون های برگشتی از این View ممکن است خیلی زیاد باشند و شما به همه ستون ها نیاز نداشته باشید. از این رو می توانید ستون هایی که فقط می خواهید را Select کنید.

SELECT
TABLE_SCHEMA,
TABLE_NAME,
COLUMN_NAME,
COLUMN_DEFAULT,
DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS WHERE IS_NULLABLE = 'YES'
ORDER BY TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME;

Using sys.columns

اگر نمی خواهید که از View سیستمی INFORMATION_SCHEMA.COLUMNS استفاده کنید، به جای آن می توان از View سیستمی sys.columns کوئری مربوطه را اجرا کنید ولی برای دریافت خروجی ای مانند خروجی که در اسکریپت فوق گرفتیدف باید Join هایی را انجام دهید که در کوئری زیر آن را مشاهده می کنید:

SELECT
SCHEMA_NAME(t.schema_id) AS [Schema],
t.name AS [Table],
c.name AS [Column],
dc.definition AS [Column Default],
ty.name AS [Data Type]
FROM sys.tables AS t
INNER JOIN sys.columns AS c
ON t.object_id = c.object_id
LEFT JOIN sys.types AS ty
ON c.user_type_id = ty.user_type_id
LEFT JOIN sys.default_constraints dc
ON c.default_object_id = dc.object_id
WHERE c.is_nullable = 1
ORDER BY [Schema], [Table], [Column];


نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز