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用户不可删除。

示例:

         public  ArrayList GetMSSQLDBNameList( string  DSN, string  UID, string  PWD)
        
{
            ArrayList DBNameList 
= new ArrayList();
            SqlConnection Connection 
= new SqlConnection(String.Format("Data Source={0};Initial Catalog=master;User ID={1};PWD={2}",DSN,UID,PWD));
            DataTable DBNameTable 
= new DataTable();
            SqlDataAdapter Adapter 
= new SqlDataAdapter("select name from master..sysdatabases", Connection);
            Adapter.Fill(DBNameTable);

            
int i = 0;
            
foreach (DataRow Row in DBNameTable.Rows)
            
{
                DBNameList.Add(Row[i]);

                i
++;
            }


            
return DBNameList;
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值