Можно ли найти все таблицы в msaccess с помощью sql.
как в sqlserver
select * from sys.tables
в sqlite
SELECT * FROM sqlite_master where type='table'
Можно ли найти все таблицы в msaccess с помощью sql.
как в sqlserver
select * from sys.tables
в sqlite
SELECT * FROM sqlite_master where type='table'
Используйте MSysObjects
SELECT * FROM MSysObjects WHERE Type=1 AND Flags=0
Ms Access имеет несколько системных таблиц, которые по умолчанию скрыты от списка таблиц. Вы можете показать их.
В Ms Access 2007 щелкните правой кнопкой мыши по списку таблиц и выберите Navigation Options
. В нижней части формы вы найдете флажок Show System Objects
. Проверьте это, и системные таблицы появятся в списке таблиц. Все они начинаются с MSys
.
В качестве альтернативы, форма формы может быть активирована из меню приложения - нажмите кнопку Access options
→ выберите Current Database
и появится кнопка Navigation Options
.
Теперь вы можете исследовать структуру и содержимое и генерировать запросы всех системных таблиц с помощью инструментов MsAccess.
Как ответил Алекс, информация таблицы находится в MSysObjects
Следующий запрос помог мне изменить редизайн/перенос из MS Access на С# и SQL Server.
Примечание. Объединяет ответы, предоставленные Alex K. и KTys.
Размещено здесь с убеждением, что это будет полезно кому-то другому (или самому себе, если я снова сделаю это)
SELECT
SWITCH (
[type]=-32764,'Report' ,
[type] = 1, 'Table, local' ,
[type] = 3, 'obj Containers' ,
[type] = 4, 'Table, link odbc' ,
[type] = 5, 'Query' ,
[type] = 6, 'Table, link access' ,
[type] = 8, 'SubDataSheets' ,
TRUE, [type]
) AS [type name (or #)]
, name AS [Table Name]
FROM
MSysObjects
ORDER BY
2, 3
Примечание от KTys (номера типов могут быть изменены)
Добавьте , *
в предложение select, чтобы увидеть другие поля (например, connect); они мне не помогли.
Создано/протестировано с MS Access 2013
Это обсуждение дает список значений типа. Помните, что MS не гарантирует одинаковые значения от версии к версии.
Type TypeDesc
-32768 Form
-32766 Macro
-32764 Reports
-32761 Module
-32758 Users
-32757 Database Document
-32756 Data Access Pages
1 Table - Local Access Tables
2 Access Object - Database
3 Access Object - Containers
4 Table - Linked ODBC Tables
5 Queries
6 Table - Linked Access Tables
8 SubDataSheets
SELECT name FROM MSysObjects where database <> ''
используйте этот запрос, чтобы получить имена всех связанных таблиц