如何在sql server中获取表列表和结构

时间:2013-09-24 17:37:29

标签: sql-server

如何从sql server获取表列表及其结构..我使用以下代码从sql server获取数据库列表。

SELECT * FROM sys.databases WHERE sys.databases.database_id > 4

这个查询返回的数据库“name”和“id”以及许多其他的fied ......

和我的.net应用程序显示用下拉列表绑定列表...现在我需要根据它的id来获取下拉列表中所选数据库的表列表...

获取所选数据库的表列表的查询是什么。

2 个答案:

答案 0 :(得分:0)

select name from sys.tables where type = 'U'  --U = user defined tables as opposed to system tables

答案 1 :(得分:0)

试试这个 -

DECLARE @SQL NVARCHAR(MAX)
SELECT @SQL = STUFF((
    SELECT CHAR(13) + 'SELECT ''' + d.name + ''', name, object_id FROM [' + d.name + '].sys.objects WHERE type = ''U'''
    FROM sys.databases d
    WHERE d.state_desc != 'OFFLINE'
    FOR XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)'), 1, 1, '')

PRINT @SQL
EXEC sys.sp_executesql @SQL

输出 -

db     name                                   object_id
------ -------------------------------------- -----------
master spt_monitor                            68195293
master spt_fallback_db                        117575457
master spt_fallback_dev                       133575514
master spt_fallback_usg                       149575571
master MSreplication_options                  1787153412

db   name                                   object_id
---- -------------------------------------- -----------
msdb sysmail_profile                        14623095
msdb syscollector_config_store_internal     23671132
msdb DTA_reports_queryindex                 38291196