列出DB中的所有用户表的列和对应的表

时间:2012-02-09 09:55:10

标签: sql-server-2008 tsql

有人可以帮我列出所有及其数据库中所有用户表的吗? 我不想列出系统表。

SELECT name FROM syscolumns

给我所有列名,但有没有办法从结果集中排除所有系统表?

2 个答案:

答案 0 :(得分:1)

select b.name as tablename, a.name as columnname
from syscolumns a join sys.tables b on a.id = b.object_id
where b.type='U';

Type U =用户定义的表格!

系统表格为Type = S,因此您可以使用此查询来避免它们!

答案 1 :(得分:0)

SELECT
--  o.type,
--  o.type_desc,
    o.name AS object_name,
    c.name AS column_name
FROM sys.columns c

    INNER JOIN sys.objects o
        ON o.object_id = c.object_id
WHERE
    o.type = 'U'

ORDER BY
    o.name,
    c.name
相关问题