Microsoft Access元数据?

时间:2016-10-20 21:22:19

标签: ms-access

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

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表的列数据类型?

由于

2 个答案:

答案 0 :(得分:1)

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

使用VBA代码的上述答案是单向的,另一种是使用数据库记录器。它会产生这样的报告:

enter image description here

答案 1 :(得分:0)

检查表时使用fields对象。我只使用了fld.name,其中fld是一个field对象。

我刚给了别人代码来查找每个列的名字。您可以使用其他属性代替“name”。 (哦,插入你的Addnew,更新记录集。我在平板电脑上打字并且懒惰

SELECT name, month, q, SUM(sub)
FROM table
GROUP BY name, month, q