使用SMO检索SQL Server,数据库,表信息

时间:2012-10-22 16:00:42

标签: c# sql database

我使用以下命令获取数据库名称:

SqlDataSourceEnumerator sdse = SqlDataSourceEnumerator.Instance;
DataTable table = sdse.GetDataSources();

然后使用下面我得到db的列表。

static void Main(string[] args)
        {
            {
                //Connect to the local, default instance of SQL Server. 
                Server srv;
                srv = new Server("LAPTOP\\SQLEXPRESS");
                //The connection is established when a property is requested.

                Console.WriteLine(srv.Databases.ToString());
                foreach (Database db in srv.Databases)
                {
                    Console.WriteLine(db);
                }
                Console.ReadLine();
            }
        }

问题是我只获得系统数据库,没有其他系统数据库,即使它们存在。我不知道要改变什么来获取所有数据库的信息。任何帮助将不胜感激。

TH

1 个答案:

答案 0 :(得分:3)

虽然已经很晚了,但我根据你的要求得到了你的问题。你为什么不尝试这段代码片段:

Server srvMgmtServer = default(Server);
srvMgmtServer = new Server("LAPTOP\\SQLEXPRESS");
ServerConnection srvConn = default(ServerConnection);
srvConn = srvMgmtServer.ConnectionContext;
srvConn.LoginSecure = true;

foreach(Database db in srvMgmtServer.Databases;
{
    Console.WriteLine(db.Name);
}