Как посмотреть тип данных в таблице sql
Перейти к содержимому

Как посмотреть тип данных в таблице sql

Инструкция SQL для получения типа столбца

есть ли инструкция SQL, которая может возвращать тип столбца в таблице?

16 ответов

использование SQL Server:

самый простой способ в TSQL:

для SQL Server эта системная хранимая процедура возвращает все сведения таблицы, включая типы данных столбцов:

в TSQL / MSSQL это выглядит так:

в oracle SQL вы бы сделали следующее:

Если вы используете MySQL, вы можете попробовать

в противном случае вы должны быть в состоянии сделать

это вернет имя столбца значений, показывая вам имена столбцов и типы данных этих столбцов (ints, varchars и т. д.).

на IBM DB2 :

другой вариант с использованием MS SQL:

использование TSQL / MSSQL

этот запрос получит вас: имя таблицы, имя столбца, тип данных, длина типа данных и допустимые нули

единственное, что нужно изменить, это your_table_name.

в моем случае мне нужно было получить тип данных для динамического SQL (Shudder!) во всяком случае, вот функция, которую я создал, которая возвращает полный тип данных. Например, вместо возврата «decimal» он вернет DECIMAL (18,4):dbo.GetLiteralDataType

используйте этот запрос, чтобы получить схему, таблицу, столбец, тип, max_length, is_nullable

TYPE_ID (Transact-SQL)

Возвращает идентификатор для указанного имени типа данных.

Синтаксис

Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.

Аргументы

type_name
Имя типа данных. Аргумент type_name имеет тип nvarchar. Аргумент type_name может иметь системный или определяемый пользователем тип данных.

Типы возвращаемых данных

int

Исключения

Возвращает значение NULL в случае ошибки или если участник не имеет разрешений для просмотра объекта.

В SQL Server пользователь может просматривать только метаданные защищаемых объектов, которыми он владеет или на которые ему были предоставлены разрешения. Это означает, что встроенные функции, создающие метаданные, такие как TYPE_ID могут вернуть значение NULL в случае, если пользователь не имеет разрешений на объект. Дополнительные сведения см. в разделе Metadata Visibility Configuration.

Комментарии

Функция TYPE_ID возвращает NULL, если имя типа неверно или если вызывающий не имеет необходимых разрешений на использование этого типа.

Примеры

A. Поиск значений функции TYPE ID для имен типов, состоящих из одной и двух частей

В следующем примере возвращается идентификатор для имен типов, состоящих из одной и двух частей.

Б. Поиск значения функции TYPE ID для системного типа данных

В следующем примере возвращается значение TYPE ID для системного типа данных datetime .

Примеры: Azure Synapse Analytics и Система платформы аналитики (PDW)

В. Поиск значения функции TYPE ID для системного типа данных

В следующем примере возвращается значение TYPE ID для системного типа данных datetime .

Как отобразить все столбцы и их тип данных в таблице с помощью SQL-запроса

Я пытаюсь напечатать имена столбцов из таблицы, называемой «мета», и мне также нужны ее типы данных.

Я пробовал этот запрос

Но выдает ошибку, сообщающую, что информационная схема недоступна. Не могли бы вы помочь мне, я новичок в SQL.

Этот запрос дает мне все таблицы в базе данных «sprl_db»

3 ответа

Вы можете использовать каталог monetdb :

Используя monetDB , вы можете получить это, используя sys.columns

Он вернет всю информацию, относящуюся к столбцам таблицы Вы также можете проверить документацию по схеме, таблице и столбцам для monetDB

На сервере SQL мы получаем это exec sp_columns TableName

Если я правильно понимаю, вам нужно увидеть столбцы и типы таблиц, которые вы (или какой-то другой пользователь) определили как meta ?

Есть как минимум два способа сделать это:

SELECT * FROM sys.tables WHERE NAME=’meta’;

Таким образом, он получает всю необходимую информацию о таблице meta . Нас больше всего интересует значение столбца id , потому что это однозначно идентифицирует таблицу.

(Обратите внимание, что этот идентификатор, вероятно, будет отличаться в вашей системе)

Получив эту информацию, мы можем запросить таблицу столбцов с этим идентификатором таблицы: SELECT * FROM sys.columns WHERE table_id=9098;

Поскольку вас интересуют только имена и типы столбцов, вы можете изменить этот запрос следующим образом:

SELECT name, type FROM sys.columns WHERE table_id=9098;

Вы можете объединить два запроса выше с объединением:

SELECT col.name, col.type FROM sys.tables as tab JOIN sys.columns as col ON tab.id=col.table_id WHERE tab.name=’meta’;

Второй и предпочтительный способ получения этой информации, если вы используете утилиту mclient MonetDB, — это использование мета-команды description mclient. При использовании без аргументов он представляет список таблиц, которые были определены в текущей базе данных, и когда ему присваивается имя таблицы, он печатает свое определение SQL:

Вы можете использовать мета-команду \? , чтобы увидеть список всех мета-команд в mclient:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *