T-SQL ile Tablodaki Alanların Listesini Alma
Projelerinizde bir alana giriş sınırı koyacağınız zaman örnek Ad girişi yaptığınız bir nesne var bu nesneye Ad uzunluğu olarak girilmesini istediğiniz uzunluğu veritabanındaki alan boyutu ile eşleştirerek engelleyebilirsiniz veri giriş boyutu sınırını veritabanındaki değere göre baz almanız daha önemlidir nedeni ise daha sonra veritabanındaki bu boyut değiştiğinde projenizdende değiştirmeniz gerekmeyecektir.
SELECT COLUMN_NAME,
*
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'TabloAdi'
AND COLUMN_NAME LIKE 'AlanAdi'
ORDER BY ORDINAL_POSITION
Tabloya ait açıklama dahil edilerek ve gerekli alanlar filtrelenerek oluşturulmuş daha kullanışlı sorgu altta yer almaktadır.
SELECT OBJECT_NAME(c.OBJECT_ID) TabloAdi,
CONVERT(NVARCHAR(500), ep_tab.value) AS TabloDetayBilgi,
AlanAdi = c.name,
AlanDetayBilgi = ep.value,
AlanOtomatikArtan = c.is_identity,
t.name AS AlanTipi,
AlanBoyutu = c.max_length,
AlanOndalikBasamak = c.PRECISION,
AlanVarsayilanDeger = ISNULL(sc.COLUMN_DEFAULT, '')
FROM sys.columns AS c
JOIN sys.types AS t ON c.user_type_id = t.user_type_id
JOIN sys.objects so ON so.object_id = c.object_id
LEFT OUTER JOIN sys.extended_properties ep ON ep.name = 'MS_Description'
AND ep.major_id = so.object_id
AND ep.minor_id = c.column_id
LEFT OUTER JOIN sys.extended_properties ep_tab ON ep_tab.name = 'MS_Description'
AND ep_tab.major_id = so.object_id
AND ep_tab.minor_id = 0
INNER JOIN INFORMATION_SCHEMA.COLUMNS sc ON sc.TABLE_NAME = so.name
AND sc.COLUMN_NAME = c.name
WHERE so.type = 'U'
Comments (0)