sql-server – 如何在与CreateTableDef链接时设置主键

前端之家收集整理的这篇文章主要介绍了sql-server – 如何在与CreateTableDef链接时设置主键前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在MS Access数据库中,我正在连接到sql Server数据库中的视图,如下所示:
  1. Dim s As String
  2. s = "ODBC;DSN=mydb;Trusted_Connection=Yes;DATABASE=mydb;"
  3.  
  4. Dim td As TableDef
  5. Set td = CurrentDb.CreateTableDef("vwMyView","MySchema.vwMyView",s)
  6.  
  7. CurrentDb.TableDefs.Append td
  8. CurrentDb.TableDefs.Refresh

这将创建一个链接表,该表链接sql Server中的视图.

但是,我无法插入/更新/删除,因为Access不知道“主键”.如何在VBA中添加有关主键的信息?

使用“链接表向导”时,始终要求您从列表框中选择唯一键列.我想在VBA中重现此行为.

解决方法

您始终可以更新刚刚附加的表,以包含索引/主键.就像是,
  1. Dim s As String
  2. s = "ODBC;DSN=mydb;Trusted_Connection=Yes;DATABASE=mydb;"
  3.  
  4. Dim td As TableDef
  5. Set td = CurrentDb.CreateTableDef("vwMyView",s)
  6.  
  7. CurrentDb.TableDefs.Append td
  8.  
  9. CurrentDb.Execute "CREATE UNIQUE INDEX SomeIndex ON vwMyView (PrimaryKeyColumn) WITH PRIMARY".
  10.  
  11. CurrentDb.TableDefs.Refresh
  12.  
  13. Set td = Nothing

在创建INDEX之前,不确定是否需要刷新CurrentDB.首先尝试刷新,如果不起作用 – 刷新它然后执行CREATE语句.

猜你在找的MsSQL相关文章