0

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

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

此查询返回的数据库“名称”和“ID”以及许多其他字段...

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

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

4

2 回答 2

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
于 2013-09-25T05:22:12.103 回答
0
select name from sys.tables where type = 'U'  --U = user defined tables as opposed to system tables
于 2013-09-24T17:41:50.440 回答