GUI jako SSMS nebo Azure Data Studio usnadňují zobrazení datového typu sloupce. Obvykle je to jednoduchá záležitost navigace do sloupce v průzkumníku objektů a datový typ vidíte hned vedle sloupce.
Ale pokud používáte T-SQL, budete muset spustit dotaz.
information_schema.columns
Zobrazit
information_schema.columns
zobrazení je dobrá volba, pokud chcete pouze datový typ a nic víc:
SELECT
COLUMN_NAME,
DATA_TYPE,
CHARACTER_MAXIMUM_LENGTH AS MAX_LENGTH,
CHARACTER_OCTET_LENGTH AS OCTET_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Products'
AND COLUMN_NAME = 'ProductName';
Ukázkový výsledek:
+---------------+-------------+--------------+----------------+ | COLUMN_NAME | DATA_TYPE | MAX_LENGTH | OCTET_LENGTH | |---------------+-------------+--------------+----------------| | ProductName | varchar | 255 | 255 | +---------------+-------------+--------------+----------------+
Nahraďte Products
a ProductName
s názvem vaší tabulky a sloupce.
OK, vrátil jsem trochu víc než jen datový typ. V případě potřeby však můžete ostatní sloupce vynechat. Nebo můžete přidat další. Existují například sloupce, které obsahují přesnost sloupce v případě, že se díváte na číselný sloupec nebo sloupec podle data a času.
Všechny sloupce můžete vrátit takto:
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Products'
AND COLUMN_NAME = 'ProductName';
sys.columns
Zobrazit
sys.columns
pohled je další možností. Můžeme se k tomu připojit pomocí sys.tables
zobrazení pro získání konkrétního sloupce z konkrétní tabulky:
SELECT
c.name,
type_name(c.system_type_id) AS system_type,
type_name(c.user_type_id) AS user_type,
c.max_length,
c.precision,
c.scale
FROM sys.tables t
JOIN sys.columns c ON t.object_id = c.object_id
WHERE t.name = 'Products'
AND c.name = 'ProductName';
Ukázkový výsledek:
+-------------+---------------+-------------+--------------+-------------+---------+ | name | system_type | user_type | max_length | precision | scale | |-------------+---------------+-------------+--------------+-------------+---------| | ProductName | varchar | varchar | 255 | 0 | 0 | +-------------+---------------+-------------+--------------+-------------+---------+
Opět zahrňte více či méně sloupců podle potřeby.
V tomto příkladu jsem použil TYPE_NAME()
funkce vrátit název datového typu na základě jeho ID. To mě zachránilo od nutnosti provádět připojení na sys.types
tabulka.
sp_help
Uložená procedura
sp_help
uložená procedura může být užitečná, pokud chcete vrátit více informací o tabulce.
Tato uložená procedura vrací informace o databázovém objektu (jakýkoli objekt uvedený v sys.sysobjects
zobrazení kompatibility), uživatelsky definovaný datový typ nebo datový typ:
EXEC sp_help Products;
To vrací hodně výstupu, takže to zde nebudu všechny vypisovat.
Stačí nahradit Products
s názvem tabulky nebo jiného objektu, o kterém chcete získat informace.
Získejte datový typ sloupce z dotazu
Můžete také získat datový typ sloupců vrácených dotazem.
Další informace a příklady najdete v tématu Zjištění typu dat sloupců vrácených v sadě výsledků na serveru SQL.