GUI като SSMS или Azure Data Studio улесняват виждането на типа данни на колоната. Обикновено е лесно да отидете до колоната в изследователя на обекти и можете да видите типа данни точно до колоната.
Но ако използвате T-SQL, ще трябва да изпълните заявка.
information_schema.columns
Преглед
information_schema.columns
изгледът е добра опция, ако просто искате типа данни и не повече:
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';
Примерен резултат:
+---------------+-------------+--------------+----------------+ | COLUMN_NAME | DATA_TYPE | MAX_LENGTH | OCTET_LENGTH | |---------------+-------------+--------------+----------------| | ProductName | varchar | 255 | 255 | +---------------+-------------+--------------+----------------+
Заменете Products
и ProductName
с името на вашата таблица и колона съответно.
Добре, върнах малко повече от просто типа данни тук. Но можете да пропуснете другите колони, ако е необходимо. Или можете да добавите още. Например има колони, които съдържат прецизността на колоната, в случай че гледате колона с число или дата и час.
Можете да върнете всички колони по следния начин:
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Products'
AND COLUMN_NAME = 'ProductName';
sys.columns
Преглед
sys.columns
оглед е друга опция. Можем да се присъединим към това с sys.tables
изглед, за да получите конкретна колона от конкретна таблица:
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';
Примерен резултат:
+-------------+---------------+-------------+--------------+-------------+---------+ | name | system_type | user_type | max_length | precision | scale | |-------------+---------------+-------------+--------------+-------------+---------| | ProductName | varchar | varchar | 255 | 0 | 0 | +-------------+---------------+-------------+--------------+-------------+---------+
Отново включете повече или по-малко колони според изискванията.
В този пример използвах TYPE_NAME()
функция за връщане на името на типа данни въз основа на неговия идентификатор. Това ме спаси от необходимостта да правя присъединяване към sys.types
таблица.
sp_help
Съхранена процедура
sp_help
съхранената процедура може да бъде полезна, ако искате да върнете повече информация за таблицата.
Тази съхранена процедура връща информация за обект на база данни (всеки обект, изброен в sys.sysobjects
изглед за съвместимост), дефиниран от потребителя тип данни или тип данни:
EXEC sp_help Products;
Това връща много резултати, така че няма да изброявам всичко тук.
Просто заменете Products
с името на таблицата или друг обект, за който искате да получите информация.
Вземете типа данни на колона от заявка
Можете също да получите типа данни на колоните, върнати от заявка.
Вижте Разберете типа данни на колоните, върнати в набор от резултати в SQL Server за повече информация и примери.