日期:2014-05-18  浏览次数:20394 次

修改字段的问题
想把表B1中的B1字段赋值给表TB中的B1字段,我用了下面的命令,

UPDATE TB SET B1=(SELECT B1 FROM B1)

表B1中有记录,可是却提示:

(0 行受影响)

这是怎么回事,请大虾们帮帮忙,先谢谢!

------解决方案--------------------
SQL code

create table m_name  (id int,name varchar(4))
insert into m_name
select 1,'张三' union all
select 2,'李四' union all
select 3,'王五'

select * from m_name
/*
id          name
----------- ----
1           张三
2           李四
3           王五
*/

create table m_chengji  (name varchar(4),kemu int,chengji int,id sql_variant)
insert into m_chengji
select '张三',1,95,null union all
select '张三',2,92,null union all
select '张三',3,91,null union all
select '李四',1,56,null union all
select '李四',2,76,null union all
select '李四',3,99,null union all
select '王五',1,57,null union all
select '王五',2,100,null union all
select '王五',3,67,null

select * from m_chengji
/*
name kemu        chengji     id
---- ----------- ----------- -----------
张三   1           95          NULL
张三   2           92          NULL
张三   3           91          NULL
李四   1           56          NULL
李四   2           76          NULL
李四   3           99          NULL
王五   1           57          NULL
王五   2           100         NULL
王五   3           67          NULL
*/

-- 更新m_chengji表的id为m_name中的id
update m_chengji 
set id = a.id from m_chengji b left join m_name a on a.[name]=b.[name]

------解决方案--------------------
UPDATE TB SET B1=(SELECT B1 FROM B1 a where b1.XXX 某关系 a.xxx )
--应该有某个关联关系才可以的
------解决方案--------------------
探讨
想把表B1中的B1字段赋值给表TB中的B1字段,我用了下面的命令,

UPDATE TB SET B1=(SELECT B1 FROM B1)

表B1中有记录,可是却提示:

(0 行受影响)

这是怎么回事,请大虾们帮帮忙,先谢谢!