2016-10-20 2 views
0

Я хотел бы запросить метаданные нескольких баз данных Microsoft Access (некоторые 2007 и некоторые 2010), чтобы получить столбцы и типы данных для данной таблицы. Я могу сделать это в Oracle, запросив ALL_TAB_COLUMNS. Я могу сделать это в SQL Server, запросив sys.objects, sys.columns и sys.types. Что-то вроде этого ...Метаданные 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/как к проходным-все-таблицы-в-в-MS-ас сесс-дб. – nscheaffer

0

Используйте поля объекта, когда изучить таблицу. Я использовал только fld.name, где fld - объект полей.

Я просто дал кому-то еще код для поиска имен, просматривающих каждый столбец. Возможно, вместо «имени» вы могли бы использовать другие свойства. (Ох, и вставить ваш Addnew, обновление для записей. Я печатаю на планшете и лени

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