update语句更新不了
表a
学号 课程 成绩
001 C语言 优
002 C语言 优
003 C语言 良
................
...............
100 C语言 差
表b
学号 课程 成绩 考场
001 C语言 1
002 C语言 2
003 C语言 1
........................
........................
100 C语言 3
我在查询分析器中用
update 表b
set 成绩 = 表a.成绩
from 表a,表b
where 表a.学号 = 表b.学号 and 表a.课程 = 表b.课程
提示
所影响的行数为 3000 行
但是用查询表b中C语言的成绩还是空的,没有更新,不知语句错在哪里?
问题点数:20、回复次数:10Top
1 楼lsxaa(小李铅笔刀)回复于 2005-07-04 15:19:37 得分 5
update 表b
set 成绩 = isnull(成绩,'')+表a.成绩
from 表a,表b
where 表a.学号 = 表b.学号 and 表a.课程 = 表b.课程Top
2 楼wuzd(兀)回复于 2005-07-04 15:28:07 得分 2
没有commit吧?Top
3 楼zengzhengliang(啊牛)回复于 2005-07-04 16:43:10 得分 5
顶Top
4 楼aflyingpig(毛毛)回复于 2005-07-04 17:08:54 得分 0
用这个还是一样呀
update 表b
set 成绩 = isnull(成绩,'')+表a.成绩
from 表a,表b
where 表a.学号 = 表b.学号 and 表a.课程 = 表b.课程
我直接用
update 表b
set 成绩 = '优'
是能更新的Top
5 楼paoluo(一天到晚游泳的鱼)回复于 2005-07-04 17:15:15 得分 2
你用
Select 表a.成绩 from 表a,表b where 表a.学号 = 表b.学号 and 表a.课程 = 表b.课程
看看有没有数据??Top
6 楼aflyingpig(毛毛)回复于 2005-07-04 17:49:12 得分 0
Select 表a.成绩 from 表a,表b where 表a.学号 = 表b.学号 and 表a.课程 = 表b.课程
有数据
在查询分析器中用
update 表b
set 成绩 = 表a.成绩
from 表a,表b
where 表a.学号 = 表b.学号 and 表a.课程 = 表b.课程
提示
所影响的行数为 3000 行
但是用查询表b中C语言的成绩还是空的,没有更新
用update 表b
set 成绩 = '优'
提示
所影响的行数为 3000 行
用查询表b中C语言的成绩也全部更新了Top
7 楼mengzulin(Julian)回复于 2005-07-05 10:53:41 得分 3
你可能update了其他数据库了,用
use datebasename
update 表b
set 成绩 = 表a.成绩
from 表a,表b
where 表a.学号 = 表b.学号 and 表a.课程 = 表b.课程Top
8 楼tian790317()回复于 2005-07-05 15:53:52 得分 3
mengzulin(Julian) 和lsxaa(小李铅笔刀) 都有可能Top
9 楼aflyingpig(毛毛)回复于 2005-07-05 16:27:51 得分 0
问题解决,是表a中的学号(nvchar)和表b中的学号(varchar)数据类型不一样Top
10 楼paoluo(一天到晚游泳的鱼)回复于 2005-07-05 16:34:40 得分 0
回复人: aflyingpig(毛毛) ( ) 信誉:100 2005-7-5 16:27:51 得分: 0
问题解决,是表a中的学号(nvchar)和表b中的学号(varchar)数据类型不一样
-----------------------------------
如果说由于类型的问题的话,Update有影响,我开始说的这个查询
Select 表a.成绩 from 表a,表b where 表a.学号 = 表b.学号 and 表a.课程 = 表b.课程
应该也是有影响的啊Top




