C#:获取所有SQL Server的数据库名称

连接到master库中,执行 select name from master..sysdatabases 。

sp_helpdb也可以列出数据名,但不是全部,sp_helpdb是会根据当前用户角色找出相应的数据库,而用sysdatabases表则只要有权限访问该表就能查出所有数据库信息。

默认情况下,sqlserver提供的6个数据库中,除了model数据库外,其他若干个数据库还可能拥有guest用户。
exec   sp_helpdb得到的记录包括:当前用户拥有访问权限的数据库(包括默认的几个guest访问数据库)。  
任何用户(只要能连接到sqlserver)查询master数据库中的表sysdatabases可以得到所有的数据库名称,因为该表的guest用户不可删除。

ContractedBlock.gif ExpandedBlockStart.gif Code
        /// <summary>
        
/// 取所有数据库名,添加到lvDB
        
/// </summary>
        
/// <returns></returns>
        private ArrayList GetAllDataBase()
        {
            ArrayList DBNameList 
= new ArrayList();
            SqlConnection Connection 
= new SqlConnection(
                String.Format(
"Data Source={0};Initial Catalog=master;User ID={1};PWD={2}","(local)","sa","adminwinter"));
            DataTable DBNameTable 
= new DataTable();
            SqlDataAdapter Adapter 
= new SqlDataAdapter("select name from master..sysdatabases", Connection);

            
lock (Adapter)
            { 
                Adapter.Fill(DBNameTable);
            }
            
            
foreach (DataRow row in DBNameTable.Rows)
            {
                DBNameList.Add(row[
"name"]);
            }

            
return DBNameList;
        }

转载于:https://www.cnblogs.com/Abel_cn/archive/2008/12/09/1351425.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值