sql-server - 通过 ODBC 从 MS SQL Server 导入到 MS Access 丢失所有索引

标签 sql-server ms-access odbc

我使用 SQL Server 2014/2017(任一表达式版本),由于某些原因,我尝试将数据从 SQL Server 数据库移动到 MS Access,但我现在面临的是,在每个表中的每个字段上创建的所有索引SQL Server 未转移到 MS Access (2016)。

目前,解决方法是:我必须转到需要设置 flag:index 的表,例如:

enter image description here

有什么解决方案可以将 SQL Server 中的所有索引保留到 Access 中吗?

最佳答案

您至少可以从 SQL Server 获取 PK 和索引。

有两种方法可以做到这一点。

从 GUI 中?

只需链接到相关表(创建到 sql server 的链接表)。

然后在导航 Pane 中,只需右键单击链接的表并选择“转换为本地表”。

因此,上述内容将保留 PK(和索引)。对于任何其他具有索引的列,您会发现 Access 还为您保留(创建)本地索引。

如果您使用的是代码?

然后,首先创建链接表。

然后执行隐蔽到本地表。

例如这段代码:

Dim strCon        As String
strCon = CurrentDb.TableDefs("dbo_TimeTest1").Connect

DoCmd.TransferDatabase acLink, "ODBC Database", strCon, acTable, _
           "dbo.tblbooking", "tblBookingLocal2", False, True
DoCmd.SelectObject acTable, "tblBookingLocal2", True
DoCmd.RunCommand acCmdConvertLinkedTableToLocal

在上面,我只是从另一个链接表中获取了一个“已知”的现有连接字符串到同一个 SQL 数据库。

关于sql-server - 通过 ODBC 从 MS SQL Server 导入到 MS Access 丢失所有索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56957679/

相关文章:

sql - sql 'like' 查询中的字符代码?

php - odbc_connect 到 Access 数据库似乎有连接限制

ms-access - Dapper 扩展 Ms Access System.Data.OleDb.OleDbException

c# - Microsoft.Jet.OLEDB.4.0 的替代方案,用于对 MDB 文件进行 64 位 Access

windows - 更改 kerberos 票证缓存位置

sql-server - 如何安装 SQL Server 管理对象

sql-server - 将 MS ACCESS 查询转换为 SQL Server 查询

mysql - MS Access Requery 不适用于 MySQL->Oracle 迁移

vb.net - Windows XP 上的错误 [IM002] [Microsoft][ODBC 驱动程序管理器]

c# - 如何在 SQL Parameter.AddWithValue 中设置 DEFAULT