sql-server - 通过 ODBC 从 MS SQL Server 导入到 MS Access 丢失了所有索引
问题描述
我使用 SQL Server 2014 / 2017(任一表达式版本),由于某些原因,我试图将数据从 SQL Server 数据库移动到 MS Access,但我现在面临的问题是,在 SQL Server 中每个表的每个字段上创建的所有索引都是未转移到 MS Access (2016)。
目前,解决方法是:我必须转到需要设置标志的表:索引例如:
是否有任何解决方案可以将所有索引从 SQL Server 保留到 Access?
解决方案
您至少可以从 SQL 服务器获取 PK 和索引。
有两种方法可以做到这一点。
从图形用户界面?
只需链接到有问题的表(创建到 sql server 的链接表)。
然后在导航窗格中,只需右键单击链接表并选择“转换为本地表”。
因此,上述内容将保留 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 - SQL Server 每组添加行号
- bash - 如何在 bash 文件中使用 cat 和 EOF
- asp.net-mvc - 新网站的 msbuild 参数失败
- node.js - NodeJS getaddrinfo ENOTFOUND 未捕获
- tomcat - Tomcat 管理器 - 活动目录身份验证
- c# - Powershell not invoking method in a c# object
- linux - 如何找到“mongod”命令的位置?
- java - 键盘覆盖 Android Studio 中的 Edittext
- loops - 阻止 Rexx Do Loop 退出
- javascript - ES6 命名空间中的变量