Как запросить типы данных столбца таблицы MS SQL из python? - PullRequest
0 голосов
/ 16 января 2020

Pandas read SQL не помогает мне, потому что выводит тип данных на основе запрошенных данных.

df = pd.read_sql("select top 10 * from table_name",cnx)

Я хочу, чтобы фактический тип данных столбца присутствовал в БД, а не тип данных, пригодный для данные запрашиваются. Кто-нибудь знает, как это получить?

Ответы [ 2 ]

0 голосов
/ 16 января 2020

Я не знаю о Pandas возможностях, но вы можете выполнить этот запрос?

-- Select rows from a Table or View '[tables]' in schema '[sys]'
SELECT  t.name
        ,c.name
        ,st.name
        ,st.* -- Every other information you need
FROM [sys].[tables] t
INNER JOIN [sys].[columns] c
    ON  t.object_id = c.object_id
INNER JOIN [sys].[types] st
    ON  c.system_type_id = c.system_type_id
GO
0 голосов
/ 16 января 2020

Вы можете использовать dm_exec_describe_first_result_set для таких вещей:

SELECT frs.name,
       frs.system_type_name
FROM sys.dm_exec_describe_first_result_set('select top 10 * from table_name',NULL,NULL) frs;

Это даст вам имя столбца и тип данных (то есть varchar(50) или decimal(12,2)). Если вам нужны дополнительные столбцы, функция возвращает намного больше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...