SQL Server查询以获取表中所有列的数据类型?

a12*_*234 4 sql-server

我有这个在SSMS中运行的SQL Server 2012查询:

SELECT name, max_length, precision, scale, is_nullable 
FROM sys.columns
WHERE object_id = OBJECT_ID('dbo.testtable')
Run Code Online (Sandbox Code Playgroud)

它正在回归我想要的东西:

在此输入图像描述

但是,我想在此查询中添加列的数据类型,以便它看起来像我在对象资源管理器中看到的那样.有关如何添加数据类型的任何想法?

在此输入图像描述

vzw*_*ick 8

SELECT c.name,
       c.max_length,
       c.precision,
       c.scale,
       c.is_nullable,
       t.name
  FROM sys.columns c
  JOIN sys.types   t
    ON c.user_type_id = t.user_type_id
 WHERE c.object_id    = Object_id('dbo.testtable')
Run Code Online (Sandbox Code Playgroud)


小智 8

这里有几个选项:

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'YourTable'
Run Code Online (Sandbox Code Playgroud)

要么

exec sp_help 'YourTable'
Run Code Online (Sandbox Code Playgroud)