sql 更新一个字段,条件是.....
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 更新一个字段,条件是.....相关的知识,希望对你有一定的参考价值。
sql 两个表a和b , 表A字段'行政区划','名称',表B字段'行下区划','名称',现在,表A的行下区划都是空的,表B是全国制定的行政区划,表A的名称不规范,但包含关键字,比如'湖南省什么市当阳县',表B的名称比较精炼,比如就两个字'当阳',如何用一个UPDATE更新表A的行政区划
update 表A set 行政区划=表B.行政区划 from 表A,表B where charindex(表B.行政区划,行政区划)>0
上面这句不行,用LIKE行不?请高人帮忙
你这句写的明显有问题
表A和表B都没有关联的,,,你怎么更新,,
关联更新的结构是下面的
update a set 字段=b.字段
from a,b
where a.关联字段=b.关联字段
and 其他条件追问
写一下呗,大神
追答你A,B有没有关联字段,,,,
参考技术B 消息 8152,级别 16,状态 13,第 1 行将截断字符串或二进制数据。
语句已终止。
这个你看看两个表的对应字段的长度是否一致,如果字段长度为20,你插入的记录长度为30就会出现这个错误,检查看看。。。追问
已经改为一样的了,但无法绑定由多个部分组成的标识符
参考技术C 这样的问题建议使用子查询,这样容易出错,类似于update 表A set 行政区划= select 表B.行政区划 from 表B where ****追问
写一下哈,高手
参考技术D update 表Aset 行政区划=表B.行政区划
from 表A,表B
where charindex(表B.行政区划,表A.名称)>0追问
消息 8152,级别 16,状态 13,第 1 行
将截断字符串或二进制数据。
语句已终止。
你看下表A和表B的“行政区划”列的数据类型和长度是否一致
追问消息 4104,级别 16,状态 1,第 1 行
无法绑定由多个部分组成的标识符 "表B.行政区划"。
update a
set 行政区划=b.行政区划
from 表A a
inner join
(
select distinct 行政区划 from 表B
) b
on charindex(b.行政区划,a.名称)>0
关于SQL触发器 B表读取A表的字段信息 并更新到指定的B表字段
这是A表
这是A表TBL_ACCOUNT
这是B表TBL_ACCOUNT_DETAIL
这是A表被读取的字段ACCOUNTID和REGISTERDAT字段
这是B表需更新的字段ACCOUNTID和ACTIVEDATE字段
B表ACCOUNTID字段需要和A表的ACCOUNTID字段一样
B表的ACTIVEDATE字段需要和A表的REGISTERDAT字段
有好心人写个这样的触发器我吗? 感激不尽
环境是SQL2008
失败的问题倒是好说,在触发器中发现执行不成功,就回滚(rollback),这样前端可以通过捕获异常的方式得知。 参考技术B
是在什么时候触发?新增的时候,还是更新的时候?
on TBL_ACCOUNT_DETAIL
for insert --写成新增触发,如果不是,可以相应更改
as
begin
update TBL_ACCOUNT_DETAIL set ACTIVEDATE = b.REGISTERDAT
from TBL_ACCOUNT_DETAIL a,TBL_ACCOUNT b,insert c
where a.ACCOUNTID = b.ACCOUNTID --这个需要两表更新的条件
and a.关键字 = c.关键字 -- 只更新新增的数据
end
以上是关于sql 更新一个字段,条件是.....的主要内容,如果未能解决你的问题,请参考以下文章