2016-12-14 145 views
1

我有这样的SQL Server 2012的查询,我在SSMS运行:SQL Server查询获取表中所有列的数据类型?

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

它返回什么,我想:

enter image description here

不过,我想补充的数据类型在这个查询中的列,以便它看起来像我在对象浏览器中看到的。有关如何添加数据类型的任何想法?

enter image description here

+2

[SQL Server查询的可能的复制相处表中的列的列表与数据类型,NOT NULL和PRIMARY KEY约束](http://stackoverflow.com/questions/2418527/sql-server-query-to-get-t一个在列表中与数据类型列表)否 – dfundako

+0

谷歌搜索“SQL Server查询列数据类型”将得到你一个答案。 – dfundako

+0

谢谢@vzwick,工作!我不明白我需要从sys.type中获取数据类型。 – a1234

回答

1
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') 
5

这里有几个选项:

SELECT * 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE table_name = 'YourTable' 

exec sp_help 'YourTable' 
相关问题