T-SQL查询access的数据表名的列表
来源:优易学  2011-12-9 17:15:05   【优易学:中国教育考试门户网】   资料下载   IT书店
  如何用TSQL判断某个表在ACCESS中是否存在,也就是如何用tsql显示access的用户表,其实access有一个隐藏了类似于sysobjects的系统表,并且必须设置权限才可以访问得到,测试过程:
  环境:SQL SERVER 2005,ACCESS2000
  首先,我们让类似于MSSQL的几个系统表显示出来,点击工具>选项>视图>系统对象前面打上勾,点确定,你会发现在对象>表下面多出5个MS打头的表,这是就隐藏的系统表。
  接着,我们如果在查询分析器中运行:
  select name
  from
  OpenRowSet('microsoft.jet.oledb.4.0',';database=c:\db1.mdb','select * from MSysObjects')
  报错如下:
  消息 7357,级别 16,状态 2,第 1 行
  无法处理对象 "select * from MSysObjects"。链接服务器 "(null)" 的 OLE DB 访问接口 "microsoft.jet.oledb.4.0" 指示该对象没有列,或当前用户没有访问该对象的权限。
  其实这是因为没有权限的原因造成的,那么我们打开这个操作权限,工具>安全>用户与组安全>选表msysobjects,设定权限,点确定后再运行上面的语句看看,
  select name
  from
  OpenRowSet('microsoft.jet.oledb.4.0',';database=c:\db1.mdb','select * from MSysObjects')
  where type = 1 and flags = 0
  /*
  name
  ta
  Switchboard Items
  myclass
  ta1
  ta2
  (5 行受影响)
  */
  注:以上测试的ACCESS内的用户表。

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训