如何从sql server获取表列表及其结构..我使用以下代码从sql server获取数据库列表。
SELECT * FROM sys.databases WHERE sys.databases.database_id > 4
这个查询返回的数据库“name”和“id”以及许多其他的fied ......
和我的.net应用程序显示用下拉列表绑定列表...现在我需要根据它的id来获取下拉列表中所选数据库的表列表...
获取所选数据库的表列表的查询是什么。
答案 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