【SQLServer】获得当前数据库的所有表

来源:互联网 发布:java 自定标签 编辑:程序博客网 时间:2024/05/16 16:15
如果您的数据库系统是SQLServer,就可以使用如下的方式来获得当前数据库的所有表:
         private void GetTables_SystemTable()
          {
             //打开连接
             string strConnectionString=System.Configuration.ConfigurationSettings.AppSettings ["ConnectionString"];
             sqlcn=new SqlConnection(strConnectionString);
             sqlcn.Open();
             //使用信息架构视图
             SqlCommand sqlcmd=new SqlCommand("SELECT OBJECT_NAME (id) FROM sysobjects WHERE xtype = 'U' AND OBJECTPROPERTY (id, 'IsMSShipped') = 0",sqlcn);
             SqlDataReader dr=sqlcmd.ExecuteReader();
             while(dr.Read())
              {
                 MessageBox.Show(dr.GetString(0));
             }
         }

6、使用SQLServer的存储过程"sp_tables"
下面是"盛国军"朋友提出的使用存储过程的方法的补充代码。
         public void GetTables_StoredProcedure()
          {
             //处理OleDbConnection
             string strConnectionString=@"Integrated Security=SSPI;Data Source=HBXP;Initial Catalog=Test;Provider=SQLOLEDB.1";
             OleDbConnection cn=new OleDbConnection(strConnectionString);
             cn.Open();
             //执行存储过程
             OleDbCommand cmd=new OleDbCommand("sp_tables",cn);
             cmd.CommandType=CommandType.StoredProcedure;
             OleDbDataReader dr= cmd.ExecuteReader();
             while(dr.Read())
              {
                 MessageBox.Show(dr["TABLE_NAME"].ToString());
             }
         }

总结:获得当前数据库中所有表的方法还不止,本人列出的这些,希望以上方法能够起到抛砖引玉的作用。以上的这些方法各有各的优缺点,希望大家能够灵活的应该,并且希望能够将发现的新的方法告知我,谢谢。
原创粉丝点击