我们可以使用sql找到msaccess中的所有表。我们可以使用sql列出msaccess数据库中的所有表吗?
,因为我们做的SQLSERVER
select * from sys.tables
SQLite中
SELECT * FROM sqlite_master where type='table'
我们可以使用sql找到msaccess中的所有表。我们可以使用sql列出msaccess数据库中的所有表吗?
,因为我们做的SQLSERVER
select * from sys.tables
SQLite中
SELECT * FROM sqlite_master where type='table'
SELECT * FROM MSysObjects WHERE Type=1 AND Flags=0
微软的Access有几个系统表是,在默认情况下,从表列表中隐藏。你可以展示他们。
在Ms Access 2007中,右键单击表格列表并选择Navigation Options
。在表单底部,您会看到Show System Objects
复选框。检查它,系统表将显示在表格列表中。他们都以MSys
开头。
或者,可以从应用程序菜单中激活选项表单 - 单击按钮Access options
- >选择Current Database
并且有Navigation Options
按钮。
现在您可以使用MsAccess工具检查结构和内容并生成所有系统表的查询。
亚历克斯回答,表中的信息是MSysObjects
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
SELECT name FROM MSysObjects where database <> ''
使用此查询来获取所有链接的表
下面的查询的名字让我的范围重新设计/迁移从MS Access到C#& SQL服务器。
注:结合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创建/测试
我得到读取权限被拒绝。 – PsychoData 2014-03-10 16:27:24
引发此错误:链接服务器“TEST”的OLE DB提供程序“MSDASQL”返回消息“[Microsoft] [ODBC Microsoft Access Driver]记录无法读取;'MSysObjects'没有读取权限。我将'sa'映射到'Admin'。获得结果需要什么? – ajeh 2015-04-10 16:42:08
刚发现这个:https://social.msdn.microsoft.com/Forums/sqlserver/en-US/8cd6eadd-2d9d-4dbd-8920-e2847a74f80a/retrieve-all-msaccess-table-names-using-openrowset-funtion -in-sql-server?forum = transactsql“因为MSysObjects是Access中的系统表,所以Admin用户没有权限读取它中的数据。” – ajeh 2015-04-10 16:45:03