• 7.7.2018
  • Ing. Jan Zedníček - Data Engineer & Controlling
  • 0

SQL Server obsahuje řadu nativních systémových views a některá z nich umožňují vypisovat seznam tabulek nebo seznam sloupců z databáze. View INFORMATION_SCHEMA.COLUMNS obsahuje nejenom seznam sloupců a tabulek, ale také vlastnosti sloupců.

Systémové view INFORMATION_SCHEMA.COLUMNS pro výpis seznamu sloupců a tabulek z databáze

Systová tabulka je umístěna v databázi master – views – system views – INFORMATION_SCHEMA.COLUMNS

Systémové view INFORMATION_SCHEMA.COLUMNS pro seznam sloupců z databáze - umístění

SQL Dotaz na seznam sloupců

SELECT
[TABLE_CATALOG]
,[TABLE_SCHEMA]
,[TABLE_NAME]
,[COLUMN_NAME]
,[ORDINAL_POSITION]
,[COLUMN_DEFAULT]
,[IS_NULLABLE]
,[DATA_TYPE]
,[CHARACTER_MAXIMUM_LENGTH]
,[NUMERIC_PRECISION] 
,[NUMERIC_SCALE]
,[CHARACTER_SET_NAME]
,[COLLATION_NAME]
FROM [master].[INFORMATION_SCHEMA].[COLUMNS]

Seznam vybraných polí INFORMATION_SCHEMA.COLUMNS

  • [TABLE_CATALOG] – Databáze tabulky
  • [TABLE_SCHEMA] – Schéma tabulky
  • [TABLE_NAME] – Název tabulky
  • [COLUMN_NAME] – Název sloupce z tabulky
  • [ORDINAL_POSITION] – Pozice sloupce z tabulky zleva
  • [COLUMN_DEFAULT] – Defaultní hodnota pole pokud je stanovena
  • [IS_NULLABLE] – Udává, jestli pole může nabývat hodnot NULL nebo ne
  • [DATA_TYPE] – Datový typ pole
  • [CHARACTER_MAXIMUM_LENGTH] – maximální délka pokud jde o textový datový typ (např. varchar)
  • [NUMERIC_PRECISION] – Úroveň přesnosti číselné řady
  • [CHARACTER_SET_NAME] – název znakové sady v případě textových řetězců
  • [COLLATION_NAME]  – název collation (např. SQL_Latin1_General_CP1_CI_AS)

Příklad použití

Níže je skript na seznam polí, které mají číselný datový typ integer (INT) a mohou nabývat hodnot NULL

SELECT
[TABLE_CATALOG]
,[TABLE_SCHEMA]
,[TABLE_NAME]
,[COLUMN_NAME]
,[ORDINAL_POSITION]
,[COLUMN_DEFAULT]
,[IS_NULLABLE]
,[DATA_TYPE]
,[CHARACTER_MAXIMUM_LENGTH]
,[NUMERIC_PRECISION]
,[NUMERIC_SCALE]
,[CHARACTER_SET_NAME]
,[COLLATION_NAME]
FROM [master].[INFORMATION_SCHEMA].[COLUMNS]
WHERE DATA_TYPE = 'int' and IS_NULLABLE = 'YES'

5/5 - (1 vote)

Ing. Jan Zedníček - Data Engineer & Controlling

Jmenuji se Honza Zedníček a působím jako freelancer. Pracoval jsem dříve také jako BI developer, finanční controller a analytik. Vše pro společnosti z oblasti IT, bankovnictví, consultingu a výroby. Po práci si rád zahraju tenis, volejbal, šachy, zajdu do posilovny a občas neúspěšně odpálím pár balónků v golfu 🏌️

Již cca 10 let zapisuji na tento web různé návody určené zejména odborné veřejnosti, studentům a zájemcům o informace z oblastí Business intelligence, korporátních financí a reportingu.

🔥 Přihlašte se do naší Excel facebook skupiny (2.4k+ členů), kde si pomáháme Excel CZ/SK diskuse »

Leave a Reply

Your email address will not be published. Required fields are marked *