2016-10-20 72 views
0

我想查询一些Microsoft Access数据库(一些2007年和一些2010年)的元数据来获取给定表的列和数据类型。我可以通过查询ALL_TAB_COLUMNS在Oracle中执行此操作。我可以通过查询sys.objects,sys.columns和sys.types在SQL Server中执行此操作。类似这样的...Microsoft Access元数据?

USE AdventureWorks2008R2 

SELECT 
    b.name, 
    b.column_id, 
    c.name, 
    b.max_length, 
    b.precision, 
    b.scale 
FROM 
    sys.objects a 
INNER JOIN sys.columns b ON a.object_id = b.object_id 
INNER JOIN sys.types c ON b.system_type_id = c.user_type_id 
WHERE 
    a.name = 'Person' 
ORDER BY 
    b.column_id 

捕获此元数据的目的是在Biml中使用它来创建SSIS包工厂。有没有办法系统地获取Microsoft Access表的列数据类型?

感谢

回答

1

不幸的是没有的SQL查询将返回列和类型。

的上述回答使用VBA代码是单向的,而另一种是使用数据库文档,将产生这样的报告:

enter image description here

+0

这是另一个问题,SO解决此... http://stackoverflow.com /问题/ 17555174 /如何对环通,全桌式-AN-MS-AC1塞斯-DB。 – nscheaffer

0

使用对象的字段检查表的时候。我只使用fld.name,其中fld是一个字段对象。

我只是给别人发现了通过每列查找姓名的代码。您可以使用其他属性代替“名称”。 (哦,插入你的ADDNEW,用于记录更新。我打字的平板电脑和懒惰

  for each fld in rst.fields 
        NewRst!variable = fld.name 
      next fld