sql两个表之间内容更新问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 09:09:07
表tab1、tab2
分别含有字段A1,A2,和B1,B2
要求是如果tab1表的A1中数据后8位和tab2表的B1中后8位相同,就把A2覆盖B2
这样写会不会有问题
update tab2
set tab2.B2=tab1.A2
where tab2.B1 = tab1.A1
请教以上程序的错误地方,请完整的写出这个程序
update tab2
set tab2.B2=tab1.A2
where RIGHT(tab2.B1,8) = RIGHT(tab1.A1,8)
提示 无法绑定由多个部分组成的标识符 RIGHT(tab1.A1,8)

sql两个表之间内容更新问题
当用一个表中的数据来更新另一个表中的数据,T-SQL提供多种写法(下面列出了二种),但建议用第一种写法,虽然传统,但结构清晰。
并且要注意,当用一个表中的数据来更新另一个表中的数据时,二个表一定要有关联!

你那样 应该不行,
我一般是都 提取出来后,再覆盖哦,这样百分百行的,也好理解。
要点RS("A1")=RS2("A2")
就是提取出来 再 进行 修改,直观点

表A
a1 a2
12345678 a
00001999 b
12542009 c
98751985 d

表B
b1 b2
50212009 1
21481985 2
dfdfdfdf 3
rtrtrtrt 4
SQL语句:
update b set b.b2=a.a2
from a,b
where right( a.a1,4)=right( b.b1,4)
结果:
表b
b1 b2
50212009 c
21481985 d
dfdfdfd 3
rtrtrtr 4

我记得中间应该有个from还是BEGIN来的,忘记了也没带书回来。

update a set a.B2=b.A2 from tab2 a inner join tab1 b on right(a.b1,8)=right(b.a1,8)