SQL Seznam sloupců s určitým datovým typem – INFORMATION_SCHEMA.COLUMNS

Poslední aktualizace:

Denním chlebem db admina je sledovat v jaké kondici se nachází jeho databáze a SQL Server instance. Často je v rámci politiky stanoveno, že některé sloupce musí mít určitý datový typ – například že se nesmí z určitých důvodů používat (n)varchar (max) a potřebujeme získat seznam sloupců a datové typy, které se v naší databázi nacházejí.

Dotaz na sloupce a jejich datové typy – INFORMATION_SCHEMA.COLUMNS

Pro tuto úlohu můžeme využít 2 způsoby. Jde to udělat přes INFORMATION_SCHEMA.COLUMNS views nebo systémovou tabulku sys.columns. Zde ukážu variantu přes view.

(1) Rychlý přehled o použitých datových typech v naší databázi: Můžeme si např. zobrazit počet sloupců určitého datového typu

SELECT
   DATA_TYPE
  ,COUNT(*)                     AS [Počet sloupců daného datového typu]
FROM INFORMATION_SCHEMA.COLUMNS
GROUP BY DATA_TYPE
ORDER BY COUNT(*) DESC;

information_schema.columns

(2) Pokud nás zajímá například délka všech %char řetězců a seznam sloupců, tak dotaz může vypadat takto: Označené záznamy na obrázku, které mají atribut CHARACTER_MAXIMUM_LENGTH = -1 jsou nvarchary (max)

SELECT
   TABLE_CATALOG
  ,TABLE_NAME
  ,COLUMN_NAME
  ,DATA_TYPE
  ,CHARACTER_MAXIMUM_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE DATA_TYPE LIKE ('%char')
ORDER BY CHARACTER_MAXIMUM_LENGTH;

 

Podobným způsobem se dá zkontrolovat řada dalších atributů sloupců jako je například NULL/NOT NULL (IS_NULLABLE), pozice sloupce (ORDINAL_POSITION), Collation (COLLATION_NAME) a podobně

SQL Seznam sloupců s určitým datovým typem – INFORMATION_SCHEMA.COLUMNS
5 (100%) 1 vote[s]

Jmenuji se Honza Zedníček a nejčastěji se se mnou v civilu můžete potkat v kancelářích Kentico Software v Brně, kde působím jako BI Developer. Částečně pracuji také jako freelancer. Tuto práci dělám pro různé firmy již přes 5 let, ale Kentico je moje srdcovka ♡. Před tím jsem pracoval jako finanční controller třeba v Aero Vodochody a Sberbank nebo jako manažer dluhopisového programu v investiční skupině Unicapital. Po práci si rád zahraju tenis, volejbal, šachy, zajdu do posilovny a rád ochutnávám dobré rumy. Svoje znalosti se snažím zapisovat na tento web - abych je nezapomněl (působením rumu ^^) a sloužily i někomu dalšímu. Nebojte se položit dotaz nebo reagovat do komentáře. Přihlašte se do naší nové Excel facebook skupiny Excel CZ/SK diskuse »

Category: RSS 1 Exclude SQL Administrace Užitečné SQL skripty

About Ing. Jan Zedníček - BI Developer, Finance controller

Jmenuji se Honza Zedníček a nejčastěji se se mnou v civilu můžete potkat v kancelářích Kentico Software v Brně, kde působím jako BI Developer. Částečně pracuji také jako freelancer. Tuto práci dělám pro různé firmy již přes 5 let, ale Kentico je moje srdcovka ♡. Před tím jsem pracoval jako finanční controller třeba v Aero Vodochody a Sberbank nebo jako manažer dluhopisového programu v investiční skupině Unicapital. Po práci si rád zahraju tenis, volejbal, šachy, zajdu do posilovny a rád ochutnávám dobré rumy. Svoje znalosti se snažím zapisovat na tento web - abych je nezapomněl (působením rumu ^^) a sloužily i někomu dalšímu. Nebojte se položit dotaz nebo reagovat do komentáře. Přihlašte se do naší nové Excel facebook skupiny Excel CZ/SK diskuse »

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.