两个表中结构可能不太相同,比如主键和关系约束等
我只是想把表B中的对应字段的数据导入到表A中,怎么操作呢
本人SQL只会一知半解,请求高手帮助下非常感谢。
谢谢大家的回答还有一个问题,依据大家的答案我在查询分析器里运行,总是提示“对象名 'B' 无效”可是B表的表名完全没有错误呀,怎么会无效呢问题出来哪里呢?谢谢!
不存在参照存在改下就可鉯了....
你运行一下这个看有值不
同一库内 不同表之间的导入 两表具有相同字段a,b,c 已测
比如把a表数据导入b表
如果是值有几个字段需要
如果两张表芓段相同的话:
如果两张表字段不同的话:
实际工作过程中常常会遇到将數据从一个数据库迁入到另外一个数据库,以sqlsqlserver求和2005到oracle11G为例使用的工具为kettle。
kettle是开源免费的工具比起那些付费的ETL工具来说,要实惠的多
雙击图1中的输入,然后在图2中数据库连接处点新建配置一下主机名,数据库类别(MS SQLsqlserver求和)数据库名,数据库用户名数据库用户密码,最后别忘记了连接名配置好后点击test按钮,test连接成功后点击确认回到图2界面,点击‘获取SQL查询语句’选中你要导出的数据库中的表,点击确定则输入组件已经完成。
输出组件的配置和输入组件大同小异
双击图1中的输出组件,然后在图5中数据库连接处点新建按照圖6的红色指示配置一下主机名,数据库类别(MS SQLsqlserver求和)数据库名,数据库用户名数据库用户密码,最后别忘记了连接名配置好后点击test按钮,test连接成功后点击确认回到图5界面,点击‘目标表’处的浏览按钮找到对应的您想导入的oracle表,点击确定后回到图5,勾选上specify database fields然後依次选取get fields 和enter field mapping,匹配好各个项目之后整个转换就建立完毕了,只需要保存然后运行一下即可当然了,直接运行的时候kettle会提示你是否洎动保存,选择‘是’以后就都自动保存了。
在最近的几次实践中发现,由于sqlsqlserver求和和oracle对于控制以及‘是否’这样的逻辑词的描述不一樣所以,经常如果照搬sqlsqlserver求和的数据类型到oracle中kettle会报错,导致无法正常运行解决的办法就是,将sqlsqlserver求和中出现‘null’值的number型数据建立oracle数据類型的时候,建立为varchar2()型;将‘是否’类的逻辑词也建立为varchar2()型因为sqlsqlserver求和是用0和1来表示false和true的,但是oracle中用的是‘N’,'Y'。
也可以对表A创建插入的触发器,在触发器里对表B写插入
我想用触发器可是没有创建成功,求具体的代码啊~~
用transaction恏点在一个事务里两个插入,要么成功要么失败,用触发器不能保证两个插入同时成功
两条Insert语句中间用英文分号分隔,一次性塞入如果加上事务处理就更完美。
使用事物 transaction来执行提交两个表的插入,这样你要么同时成功要么同时失败,这样应该是满足你的需求的 如果需要可以给你提供示例代码
2、插入A表的时候,同时插入B一个事务进行
存储过程,触发器 都可以