用ado取到一个可更新的记录集,更新时总提示键列信息不足。一个表具备什么信息才是可更新的呀?
-------------------------------
我是这样做测试的,对于单独一个表而言,如果有自增列,不设主键,我测试是可以更新的,那来更新时凭借的就是自增列,因为自增列一定是惟一的。[所以我认为一个表只要具有一个惟一字段,一定是可更新的,不知我的结论对否?想问一下?]
可是今天我发现,一个表与另一个表进行连接而得到的记录集,其中被更新的表必须要设主键才行。否则就会提示更新键列信息不足。
如:select a.自增列,a.编号a.姓名,a.部门编号,b.部门名称 from table1 a left join table2 b on (a.部门编号=b.部门编号)
这样得到一个记录集,如果a表不设主键就无法实现更新,可是同样情况下如果不与b表连接,A表不设主键就是可以更新的。所以我不明白。A表有惟一字段不就行了吗?为什么必须要有主键才行呢?
谢谢先。
-------------------------------
我是这样做测试的,对于单独一个表而言,如果有自增列,不设主键,我测试是可以更新的,那来更新时凭借的就是自增列,因为自增列一定是惟一的。[所以我认为一个表只要具有一个惟一字段,一定是可更新的,不知我的结论对否?想问一下?]
可是今天我发现,一个表与另一个表进行连接而得到的记录集,其中被更新的表必须要设主键才行。否则就会提示更新键列信息不足。
如:select a.自增列,a.编号a.姓名,a.部门编号,b.部门名称 from table1 a left join table2 b on (a.部门编号=b.部门编号)
这样得到一个记录集,如果a表不设主键就无法实现更新,可是同样情况下如果不与b表连接,A表不设主键就是可以更新的。所以我不明白。A表有惟一字段不就行了吗?为什么必须要有主键才行呢?
谢谢先。
举例如下表TEST:
col1 col2
AAA BBB
AAA BBB
AAA BBB
XXX YYY
XXX AAA
你在前台删除第一条记录,发送到服务器的SQL 语句为
DELETE TEST FROM TEST WHERE col1 = 'AAA' AND col2 = 'BBB'
你的意图是只删除一条,结果呢,把3条记录都删除了,
所以单表要么有自增列,要么有主键,否则不能更新
FROM
我是用PB做前台的,一直在避免多表更新
实在不行就自己写SQL 更新,太容易发生数据异常
你用的ADO,对于多表更新是怎么处理的
我就不太清楚了
如何设置只更新其中一个表呢?
如何设置只更新其中一个表呢?
"
你试一试用 sql查询语句更新一个表