SQl查询数据库表名、表的列名(SQL Server)

--读取库中的所有表名
select name from sysobjects where xtype='u'
--读取指定表的所有列名
select name from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='表名')
获取数据库表名和字段


sqlserver中各个系统表的作用
sysaltfiles     主数据库                 保存数据库的文件
syscharsets     主数据库                 字符集与排序顺序
sysconfigures   主数据库                 配置选项
syscurconfigs   主数据库                 当前配置选项
sysdatabases     主数据库                 服务器中的数据库
syslanguages     主数据库                 语言
syslogins       主数据库                 登陆帐号信息
sysoledbusers   主数据库                 链接服务器登陆信息
sysprocesses     主数据库                 进程
sysremotelogins主数据库                 远程登录帐号

syscolumns       每个数据库              
sysconstrains   每个数据库               限制
sysfilegroups   每个数据库               文件组
sysfiles         每个数据库               文件
sysforeignkeys 每个数据库               外部关键字
sysindexs       每个数据库               索引
sysmenbers       每个数据库               角色成员
sysobjects       每个数据库               所有数据库对象
syspermissions 每个数据库               权限
systypes         每个数据库               用户定义数据类型
sysusers         每个数据库               用户


//
用什么方法可以得到一个表中所有的列名。SQl语句。
select     列名=name     from     syscolumns     where     id=object_id(N'要查的表名')

use gpStrudy
select     name="name"     from     syscolumns     where     id=object_id(N'bookTable')
获得字段的属性
//这是从一段代码中考出来的,使用的是using   System.Data.OleDb;
  public   int   GetTableFields(String   tableName,out   String[]   fields,out   String[]   fieldTypes)
  ...{
  try
  ...{
  OleDbCommand   dc         =   m_OleDb.CreateCommand();//创建一个执行对象用于执行sql查询
  dc.CommandText           =   "select   *   from   "   +   tableName;
  dc.Transaction           =   m_OleTrans;
 
  OleDbDataReader   dr   =   dc.ExecuteReader();//执行sql查询
  //获取数据库的架构信息
  DataTable   schemaTable   =   dr.GetSchemaTable();
 
  int   fieldColumnCount   =   0;
 
  fields   =   new   String[schemaTable.Rows.Count];
  fieldTypes   =   new   String[schemaTable.Rows.Count];
 
  for(int   i   =   0;i   <   schemaTable.Columns.Count;i++)
  ...{
  if(schemaTable.Columns.ColumnName.IndexOf("ColumnName")   >=   0)
  ...{
  //获取字段名称
 
  for(int   k   =   0;k   <   schemaTable.Rows.Count;k++)
  fields[k]   =   schemaTable.Rows[k].ItemArray
.ToString();
 
  fieldColumnCount++;
  if(fieldColumnCount   >=   2)
  ...{
  dr.Close();
  dc.Dispose();
 
  dr   =   null;
  dc   =   null;
  return   schemaTable.Rows.Count;
  }
  }
  else   if(schemaTable.Columns.ColumnName.IndexOf("DataType")   >=   0)
  ...{
  //获取字段类型
 
  for(int   k   =   0;k   <   schemaTable.Rows.Count;k++)
  fieldTypes[k]   =   schemaTable.Rows[k].ItemArray
.ToString();
 
  fieldColumnCount++;
  if(fieldColumnCount   >=   2)
  ...{
  dr.Close();
  dc.Dispose();
 
  dr   =   null;
  dc   =   null;
  return   schemaTable.Rows.Count;
  }
  }
 
  }
 
  dr.Close();
  dc.Dispose();
 
  dr   =   null;
  dc   =   null;
 
  return   0;
 
  }
  catch(Exception   ee)
  ...{
  fields           =   new   String[1];
  fieldTypes   =   new   String[1];
  m_ErrorString   =   "Ado_Application:GetTableFields:error:"   +   ee.Message;
  return   0;
  }
  }

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值