加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 用主键添加链接表的VBA代码

发布时间:2020-12-12 16:22:42 所属栏目:MsSql教程 来源:网络整理
导读:我在sql server数据库中有一个可更新的视图.当我使用ODBC创建链接表时,我被要求选择唯一的记录标识符,以便它可以更新. 我需要在VBA中动态重新链接此表,因此我需要删除并重新创建链接表(我无法更新ODBC表的TableDef.Connect属性). 我找到了几个解决方案,在我的
我在sql server数据库中有一个可更新的视图.当我使用ODBC创建链接表时,我被要求选择唯一的记录标识符,以便它可以更新.

我需要在VBA中动态重新链接此表,因此我需要删除并重新创建链接表(我无法更新ODBC表的TableDef.Connect属性).

我找到了几个解决方案,在我的情况下不适用:

>链接后创建索引:我不能用于ODBC源代码
>在数据库中创建主键:我不能,这是一个视图

这些适用:

>一个代码,它将执行向导的操作
>重新链接的代码,无需删除TableDef,并且与ODBC链接表一起使用,并且不会重置先前设置的标识符

临时解决方法:

>将视图转换为物化视图并在其上创建唯一索引

解决方法

为什么不能在链接后为ODBC源创建索引?

在工作中,我们使用Access与链接的SQL Server表,当有人想要连接到不同的数据库(从生产环境更改为测试环境)时,我们对所有表执行以下操作:

Dim TD As TableDef
Dim ConString As String

ConString = "ODBC;DRIVER={SQL Server};SERVER=ServerName;DATABASE=DbName;Trusted_Connection=Yes;"

CurrentDb.TableDefs.Delete "SomeTable"

Set TD = CurrentDb.CreateTableDef("SomeTable","SomeTable",ConString)
CurrentDb.TableDefs.Append TD
Set TD = Nothing

CurrentDb.Execute "CREATE UNIQUE INDEX SomeIndex ON SomeTable (PrimaryKeyColumn) WITH PRIMARY"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读