25.07.2016, Vladimír Klaus, navštíveno 5698x
SQL
SQL Server
Pokud potřebujete třeba v dokumentaci uvést velikosti polí všech tabulek, je možné použít tento SQL. Podobný jste někde možná již objevili, ale problém bývá v případě nvarchar polí, u kterých je uvedena velikost v bajtech, ale nás spíše zajímá, kolik reálně znaků lze do uvedeného pole zapsat. Proto je tam ta malá podmínka. A snad ještě poznámka - v případě nvarchar(MAX) bude uvedena délka 0.
SELECT
o.name as NazevTabulky
,c.name as NazevSloupce
,t.name as DatovyTyp
,case t.name
when 'nvarchar' then c.length/2
else c.length
end as Delka
FROM sysobjects o
JOIN syscolumns c ON o.id = c.id
JOIN systypes t ON c.xtype = t.xtype
WHERE o.xtype = 'u' and t.name <> 'sysname' and o.name <> 'sysdiagrams'
ORDER BY o.name
Výsledek pak může vypadat třeba takto: