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
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'