SQL Server查询获取表中所有列的数据类型?
问题描述:
我有这样的SQL Server 2012的查询,我在SSMS运行:SQL Server查询获取表中所有列的数据类型?
SELECT name, max_length, precision, scale, is_nullable
FROM sys.columns
WHERE object_id = OBJECT_ID('dbo.testtable')
它返回什么,我想:
不过,我想补充的数据类型在这个查询中的列,以便它看起来像我在对象浏览器中看到的。有关如何添加数据类型的任何想法?
答
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')
答
这里有几个选项:
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'YourTable'
或
exec sp_help 'YourTable'
[SQL Server查询的可能的复制相处表中的列的列表与数据类型,NOT NULL和PRIMARY KEY约束](http://*.com/questions/2418527/sql-server-query-to-get-t一个在列表中与数据类型列表)否 – dfundako
谷歌搜索“SQL Server查询列数据类型”将得到你一个答案。 – dfundako
谢谢@vzwick,工作!我不明白我需要从sys.type中获取数据类型。 – a1234