GUIs como SSMS ou Azure Data Studio facilitam a visualização do tipo de dados de uma coluna. Normalmente é uma simples questão de navegar até a coluna no explorador de objetos e você pode ver o tipo de dados ao lado da coluna.
Mas se você estiver usando T-SQL, precisará executar uma consulta.
O information_schema.columns
Visualizar
O
information_schema.columns
view é uma boa opção se você deseja apenas o tipo de dados e nada mais: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';
Resultado da amostra:
+---------------+-------------+--------------+----------------+ | COLUMN_NAME | DATA_TYPE | MAX_LENGTH | OCTET_LENGTH | |---------------+-------------+--------------+----------------| | ProductName | varchar | 255 | 255 | +---------------+-------------+--------------+----------------+
Substituir
Products
e ProductName
com o nome de sua tabela e coluna, respectivamente. OK, eu retornei um pouco mais do que apenas o tipo de dados aqui. Mas você pode omitir as outras colunas, se necessário. Ou você pode adicionar mais. Por exemplo, existem colunas que contêm a precisão da coluna caso você esteja olhando para uma coluna numérica ou de data e hora.
Você pode retornar todas as colunas assim:
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Products'
AND COLUMN_NAME = 'ProductName';
As sys.columns
Visualizar
O
sys.columns
vista é outra opção. Podemos juntar isso com o sys.tables
view para obter uma coluna específica de uma tabela específica: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';
Resultado da amostra:
+-------------+---------------+-------------+--------------+-------------+---------+ | name | system_type | user_type | max_length | precision | scale | |-------------+---------------+-------------+--------------+-------------+---------| | ProductName | varchar | varchar | 255 | 0 | 0 | +-------------+---------------+-------------+--------------+-------------+---------+
Novamente, inclua mais ou menos colunas conforme necessário.
Neste exemplo, usei o
TYPE_NAME()
função para retornar o nome do tipo de dados, com base em seu ID. Isso me salvou de ter que fazer uma junção no sys.types
tabela. O sp_help
Procedimento armazenado
O
sp_help
procedimento armazenado pode ser útil se você quiser retornar mais informações sobre a tabela. Este procedimento armazenado retorna informações sobre um objeto de banco de dados (qualquer objeto listado em
sys.sysobjects
visualização de compatibilidade), um tipo de dados definido pelo usuário ou um tipo de dados:EXEC sp_help Products;
Isso retorna muita saída, então não vou listar tudo aqui.
Basta substituir
Products
com o nome da tabela ou outro objeto sobre o qual você deseja obter informações. Obter o tipo de dados de uma coluna de uma consulta
Você também pode obter o tipo de dados das colunas retornadas por uma consulta.
Consulte descobrir o tipo de dados das colunas retornadas em um conjunto de resultados no SQL Server para obter mais informações e exemplos.