如何从 sql server 获取表列表及其结构。我使用以下代码从 sql server 获取数据库列表。
SELECT * FROM sys.databases WHERE sys.databases.database_id > 4
此查询返回的数据库“名称”和“ID”以及许多其他字段...
我的.net应用程序显示将列表与下拉列表绑定...现在我需要根据它的ID在下拉列表中获取所选数据库的表列表...
获取所选数据库的表列表的查询是什么。
如何从 sql server 获取表列表及其结构。我使用以下代码从 sql server 获取数据库列表。
SELECT * FROM sys.databases WHERE sys.databases.database_id > 4
此查询返回的数据库“名称”和“ID”以及许多其他字段...
我的.net应用程序显示将列表与下拉列表绑定...现在我需要根据它的ID在下拉列表中获取所选数据库的表列表...
获取所选数据库的表列表的查询是什么。
试试这个——
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
select name from sys.tables where type = 'U' --U = user defined tables as opposed to system tables