Sql server 将ODBC链接表访问到SQL Server允许插入,但不允许更新
基于Web阅读资料,我构建了一个新的ODBC连接,仔细寻找可能建议进行更新的微妙配置参数,但没有找到。然后我测试了新链接 要重新测试我的问题: 1) 我在SQL Server 2005上创建了下表:Sql server 将ODBC链接表访问到SQL Server允许插入,但不允许更新,sql-server,ms-access,ms-access-2007,Sql Server,Ms Access,Ms Access 2007,基于Web阅读资料,我构建了一个新的ODBC连接,仔细寻找可能建议进行更新的微妙配置参数,但没有找到。然后我测试了新链接 要重新测试我的问题: 1) 我在SQL Server 2005上创建了下表: [TestTbl] column1: Key Type:Integer Column2: Name Type:varchar(5) 如下所示 Key Name === ==== 1 Apple 2 Bear
[TestTbl]
column1: Key Type:Integer
Column2: Name Type:varchar(5)
如下所示
Key Name
=== ====
1 Apple
2 Bear
3 Cat
2) 然后在Access 2007中,使用我最新的ODBC连接创建了到SQL Server表TestTbl的链接
3) 接下来,使用链接并从Access 2007执行我的插入操作,成功地将以下新记录插入到SQL Server表中:
Key Name
=== ====
4 Dog
5 Elephant
4) 最后,我尝试执行以下简单的更新查询:
UPDATE dbo_TestTable SET dbo_TestTable.TestName = "CatNip"
WHERE (((dbo_TestTable.TestKey)=3));
我收到错误消息“操作必须是可更新的查询”
5) 出于沮丧,我插入了另一张唱片
Key Name
=== ====
6 Nonsense
然后我发布了这个问题寻求帮助
任何人都可以解释为什么我可以向链接表插入新记录,但无法更新现有记录?您遇到的问题是,没有定义主键,或者在Access中链接表时,没有定义主键。重新添加链接表(删除和添加)并选择一个主键字段,在本例中column1varchar(50)是Column2的数据类型可能只是一个输入错误,但您的列被称为key和Name,但INSERT语句引用了TestKey和TestName。这是一个链接表,是吗?是否确实有主键?如果access数据库未处于只读模式,请使用传递查询检查解决。这很可能是正确答案。以后考虑使用ADP文件。