La siguiente consulta me ayudó alcance un rediseño/migración de MS Access a C# & SQL Server.
Nota: Combina las respuestas proporcionadas por Alex K. y KTys.
Publicado aquí con la creencia de que será útil a otra persona (o yo mismo si tengo que hacer esto de nuevo) la advertencia
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
Nota de KTys (números de tipo están sujetos a cambios)
Añadir , *
a la cláusula de selección para ver los otros campos (como conectar); no fueron útiles para mí.
Creado/probado con MS Access 2013
Obtengo un permiso de lectura denegado. – PsychoData
Eso arroja este error: 'proveedor MSDASQL OLE DB" para el servidor vinculado mensaje devuelto "TEST" mensaje "Microsoft [ODBC Microsoft Access Driver] registro (s) no se puede leer, no hay permiso de lectura en 'MSysObjects'.". Mapeé 'sa' a' Admin'. ¿Qué se requiere para obtener los resultados? – ajeh
Acabo de encontrar esto: 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 "Como MSysObjects es una tabla del sistema en Access, el usuario administrador no tiene permiso para leer datos en él". – ajeh