连接服务器而不是连接数据库有什么区别?
问题的背景是我负责开发一个概念证明,用户可以选择我们的服务器之一,该服务器中的数据库,该数据库中的表以及该表中的列。我正在使用Visual C#和ASP.NET。我相信我可以从web.config中的连接字符串中获取服务器,但我不太确定如何。
如果它有帮助(我喜欢例子),你可以假设SQL服务器。
答案 0 :(得分:4)
(回答原问题)
有一个层次结构:
(回答更新的问题)
每个SQL提供程序都不同,但使用Microsleft SQL服务器只需连接到服务器(不要在连接字符串中提供默认实例)并执行以下操作:
select * from sys.databases
获得数据库后,连接到该数据库并执行以下操作以获取表
select * from sys.tables where type = 'U'
获取你做的列
select * from sys.Columns
但要获取列所在表格的名称,您需要在Object_id
上将Object_id
与sys.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'
答案 1 :(得分:4)
您可以实现目标。最初,您将连接到服务器上的数据库master
并查询该服务器上的数据库。
SELECT * FROM sys.databases
然后,您将启动与所选数据库的新连接并查询该数据库的信息架构,以获取表列表。
SELECT * FROM INFORMATION_SCHEMA.TABLES
重复选择一列。
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'foo'
答案 2 :(得分:0)
如果服务器是指数据库服务器,则应连接到服务器以访问该服务器上托管的数据库。