我们能否像在sql server中一样使用sql。找到ms访问中的所有表
select * from sys.tables
在sqlite中
SELECT * FROM sqlite_master where type='table'
答案 0 :(得分:18)
SELECT * FROM MSysObjects WHERE Type=1 AND Flags=0
答案 1 :(得分:2)
Ms Access有几个系统表,默认情况下从表列表中隐藏。你可以展示它们。
在Access 2007中,右键单击表列表并选择Navigation Options
。在表单底部,您会看到Show System Objects
复选框。检查它,系统表将显示在表格列表中。它们都以MSys
开头
或者,可以从应用程序菜单激活选项表单 - 单击按钮Access options
- >选择Current Database
,然后有Navigation Options
按钮。
现在,您可以使用MsAccess工具检查结构和内容并生成所有系统表的查询。
Alex回答,表信息在MSysObjects
答案 2 :(得分:1)
以下查询帮助我重新设计/从MS Access迁移到C#& amp; 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创建/测试
答案 3 :(得分:0)
This discussion gives 类型值列表。请注意,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
答案 4 :(得分:0)
SELECT name FROM MSysObjects where database <> ''
使用此查询获取所有链接表的名称
答案 5 :(得分:0)
对于Access 2013,我已经使用
从MSysObjects中选择名称,其中type = 4