为什么会有这个问题出现?!update select 的

shawls 2002-06-02 09:07:39
为什么会有这个问题出现?!update select 的


sql:update leveldic set nowlevel =(select nextlevel where id=1) where id=1


在vb+ado中提示
?err.Description
操作必须使用一个可更新的查询。
?err.Source
Microsoft JET Database Engine
?err.Number
-2147467259


为什么?
...全文
953 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
mazhayang 2002-06-20
  • 打赏
  • 举报
回复
还有是不是被更新的字段是不是有约束条件,如字段值是其他字段自动计算的
mazhayang 2002-06-18
  • 打赏
  • 举报
回复
如果阿巴拉古说的不行,是不是你的记录集类型是只读的啊
shawls 2002-06-17
  • 打赏
  • 举报
回复
to 086(阿巴拉古)

数据库表的结果我没有办法改变了的阿!

086 2002-06-14
  • 打赏
  • 举报
回复
一句话就搞定的事情非要用子查询,一带子查询系统开销马上加大,何苦来着?
086 2002-06-14
  • 打赏
  • 举报
回复
唉。。。真是搞不懂你为何要这样写
update leveldic set nowlevel=nextlevel where ID=1
这样搞不定么?
blackhawk_yps 2002-06-05
  • 打赏
  • 举报
回复
应该是数据库锁的问题吧。
这个语句应该不能通过。
select 和update操作是对同一行进行。
你把两句拆开试试
如:
declare @tmp varchar(30)
select @tmp=nextlevel from leveldic where id=1
update leveldic set nowlevel=@tmp where id=1
shawls 2002-06-03
  • 打赏
  • 举报
回复
to kknd_net:
sql漏了一点

是:
update leveldic set nowlevel =(select nextlevel from leveldic where id=1) where id=1
kknd_net 2002-06-03
  • 打赏
  • 举报
回复
如果是同一个表的相关子操作,最好带表别名,再操作
kknd_net 2002-06-03
  • 打赏
  • 举报
回复
select nextlevel where id=1 ???
不能这么写把,先改成shawls的,试试
biti_rainy 2002-06-02
  • 打赏
  • 举报
回复
select nextlevel from leveldic where id=1
返回的结果只有一个?

shawls 2002-06-02
  • 打赏
  • 举报
回复

数据库:access 2000的

我查看ms t-sql的说明,我这个语句是对的压

不得其解!

shawls 2002-06-02
  • 打赏
  • 举报
回复
sql漏了一点

是:
update leveldic set nowlevel =(select nextlevel from leveldic where id=1) where id=1

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧