注册 登录
编程论坛 SQL Server论坛

各位前辈,高手请教列复制问题(新手,搞晕了)

chenhong 发布于 2007-03-29 01:30, 1163 次点击
  请问:在同一个数据库中,把A表a_MJ列的数据复制到B表bz_mj列中,用什么语句。
最好有哪位大大能完整写出来。谢谢了先!(急)
13 回复
#2
Kendy1234562007-03-29 09:23

没法写

光复制一列有什么用? 除非你的表就1列

#3
棉花糖ONE2007-03-29 11:17
他应该是要update
#4
初学Delphi2007-03-29 13:32

直接写不知道怎么写

你可以每个表先加一列lie,然后给两个表的这一列重新排序(从1到最大值)
declare @a int
set @a=0
update A set lie=@a,@a=@a+1

然后的事就好实现了 update a set a_MJ=select b.bz_MJ from B b where lie=b.lie)

#5
chenhong2007-03-29 17:26

各位大大,不好意思,我想是我没表达清楚,我是说在同一个数据库中,A表a_MJ列的数据与B表bz_mj列中的数据是一样的,所以我想把A表a_MJ列的数据直接复制到B表bz_mj列中,就不用在一个一个在B表bz_mj列中输了,但我搞了很久都没搞定,在网上搜索了一下,没有什么收获。所以想请教各位大大用什么语句。
谢谢了先。

“初学Delphi”谢了,我马上试一下。

#6
cyyu_ryh2007-03-29 17:49
2楼说的没错,列必须一致,类型和长度也一样,不然没法做
#7
Kendy1234562007-03-29 18:01
没这么简单。 你复制的这一列的值 还要和同行的其它列匹配。
你按照物理顺序同步复制过来是没用的,除非你的表就这一行。

举例一下
表一 学号 学科 成绩

表二 名字 学科 成绩

你光把表二的成绩全搬到表一 不管学科不管学号不管名字么?

所以说 光说一列的复制 没有意义的
#8
chenhong2007-03-29 22:36
以下是引用Kendy123456在2007-3-29 18:01:45的发言:
没这么简单。 你复制的这一列的值 还要和同行的其它列匹配。
你按照物理顺序同步复制过来是没用的,除非你的表就这一行。

举例一下
表一 学号 学科 成绩

表二 名字 学科 成绩

你光把表二的成绩全搬到表一 不管学科不管学号不管名字么?

所以说 光说一列的复制 没有意义的

你好,我想我还是没说清楚,(急呀)!   让各位大大笑话了。
举例一下
表一 序列号 姓名 身份证 玉米种植面积  水稻种植面积 等
表二 序列号 单产量   土地种植面积   总产量
我这里的情况是表一的数据全部录入完成且表一的序列号自动为表二的序列号现在我想把表一的“种植水稻面积”复制到表二的土地种植面积(应为我这里只有水稻种植面积和土地种植面积一样)。

#9
冰封情愁2007-03-29 23:54

alter talbe 表二
add 水稻种植面积 int
go
update 表二 set 表二.水稻种植面积=(select 表一.水稻种植面积 from 表一
where 表一.水稻种植面积=表二.水稻种植面积)
go


你试试看行不行的

#10
冰封情愁2007-03-29 23:57
不好意思,错了个地方!!!!

alter talbe 表二
add 水稻种植面积 int
go
update 表二 set 表二.水稻种植面积=(select 表一.水稻种植面积 from 表一
where 表一.序列号=表二.序列号)
go
select * from 表二
go
#11
Kendy1234562007-03-30 09:44

不需要楼上这么麻烦

Update 表2 set 土地种植面积 = b.水稻种植面积 from 表1 a join 表2 b
on a.序列号=b.序列号

#12
chenhong2007-03-30 13:11
以下是引用冰封情愁在2007-3-29 23:57:14的发言:
不好意思,错了个地方!!!!

alter talbe 表二
add 水稻种植面积 int
go
update 表二 set 表二.水稻种植面积=(select 表一.水稻种植面积 from 表一
where 表一.序列号=表二.序列号)
go
select * from 表二
go

终于解决了,谢谢大大,直接用

update 表二
set 土地种植面积=(select 表一.水稻种植面积
from 表一 where 表一.序列号=表二.序列号)
万分感谢。

#13
chenhong2007-03-30 13:12
以下是引用Kendy123456在2007-3-30 9:44:41的发言:

不需要楼上这么麻烦

Update 表2 set 土地种植面积 = b.水稻种植面积 from 表1 a join 表2 b
on a.序列号=b.序列号

提示1064错误

#14
chenhong2007-03-30 13:16
我再次感谢各位的帮助,这个论坛是我学习的好地方。
1