连接到服务器与连接到数据库有什么区别?
问题的上下文是我负责开发概念证明,用户可以在其中选择我们的一个服务器、该服务器中的一个数据库、该数据库中的一个表以及该表中的一个列。我正在使用 Visual C# 和 ASP.NET。我相信我可以从 web.config 中的连接字符串中获取服务器,但我不太确定如何。
如果它有帮助(我喜欢例子),你可以假设 SQL 服务器。
(对原始问题的回答)
有一个层次结构:
(回答更新的问题)
每个 SQL 提供程序都不同,但使用 Microsleft SQL 服务器,您只需连接到服务器(不要在连接字符串中提供默认实例)并执行以下操作:
select * from sys.databases
拥有数据库后,连接到该数据库并执行以下操作以获取表
select * from sys.tables where type = 'U'
得到你做的列
select * from sys.Columns
但是,要获取该列所在的表的名称,您需要匹配Object_id
到Object_id
onsys.tables
select t.name as TableName, c.Name as ColumnName
from sys.tables t
inner join sys.columns c on t.object_id = c.object_id
where t.Type = 'U'
你可以实现你的目标。最初,您将连接到master
服务器上的数据库并查询该服务器上的数据库。
SELECT * FROM sys.databases
然后,您将启动与所选数据库的新连接并查询该数据库的信息模式,以获取表列表。
SELECT * FROM INFORMATION_SCHEMA.TABLES
重复选择一列。
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'foo'
如果服务器是指数据库服务器,您将连接到服务器以访问该服务器上托管的数据库。