sql有两张表A和B,字段相同,但是顺序不同,将A表的数据插入B表,这样会报错:将截断字符串或二进制数据

A结构
【id int, name varchar(10), depart varchar(20), cs1 varchar(10), cs2 varchar(10), cs3 varchar(10)】
B结构
【id int, name varchar(10), cs1 varchar(10), cs2 varchar(10), cs3 varchar(10), depart varchar(20)】
插入的sql语句如下:insert into Data2012..A201212 select * from Data..A此语句是不能更改的,我的年库月表由于是手动添加的字段,一个年库里面包含12张表,请问有没有什么比较好点的方法,请高手赐教,万分感谢!!

第1个回答  2013-01-12
你的意思是你的每张月份个的顺序都有可能不相同,然后用一条sql去实现通用插入?
如果你不想改插入sql的话,只能去改表结构,让每张月份个的顺序一致,这个操作用不了多少时间
如果不改变表结构,insert into Data2012..A201212 select * from Data..A中的*改成你要插入表的顺序
insert into B select id,name,cs1,cs2,cs3,depart from A

插入其它表也一样,改变顺序吧追问

sql是写好用于调用的 不能动 月表里面已经有数据 需要重新调整字段 但是里面的内容又不能丢 你这个办法不可行 有没有好点的办法啊?

追答

重新建一个顺序正确的月表,然后把以前的月表数据导进去就行啊,因为你的旧月表的数据顺序不对,你按照需要的顺序查出月表数据插入新的月表,然后直接对新表进行操作不就行了

追问

谢谢你热心的回答 我在原表的基础上已经改好了哈~~ 万分感谢!

第2个回答  2013-01-11
insert into B表 select id,name,cs1,cs2,cs3,depart from A表
不能改SQL语句就得改A表
select id,name,cs1,cs2,cs3,depart into #temp from A表
drop table A表
select * into A表 from #temp
insert into Data2012..A201212 select * from Data追问

仁兄这个办法好像可行,我先试验下。

本回答被提问者采纳
第3个回答  2013-01-11
语句不能改那还有什么办法啊,改表结构喽,表结构也不能动的话,那就没折了
相似回答