怎么把数据同时插入到数据库的两个表中

 我来答
己闻楣Sx
推荐于2016-01-29 · TA获得超过1935个赞
知道大有可为答主
回答量:1057
采纳率:93%
帮助的人:902万
展开全部
严格意义上讲,没有所谓“同时插入”的手段,只有“要么都插入(分先后),要么都不插入”的机制,这个机制就叫做“事务”,是数据库服务器的执行单位,是原子操作。
由上,将两个insert命令包装为一个事务,如下:
declare @OK integer
begin transaction
set @OK = 0
while 1 = 1
begin
insert table1 values( ... )
set @OK = @@error
if @OK <> 0
Break
insert table2 values (... )
set @OK = @@error
Break
end
if @OK = 0
commit transaction
else
rollback transaction

通过触发器也能实现你的需求,其底层原理依然是事务,触发器和引发它执行的语句被自动地包装到一个事务中。不过,强烈不建议使用该方法,用此伎俩会导致业务逻辑分散,而人的思维还是需要一定的连贯性,集中在一起显然有助于表达和理解,当需要改进或者调试错误时徒增繁琐,实在是弊大于利。
百度网友c1300c0
2011-07-12 · TA获得超过626个赞
知道小有建树答主
回答量:852
采纳率:0%
帮助的人:718万
展开全部
写个触发器 例如
create trigger insertsid
on one
for insert
as
begin
declare @a as int(可以声明多个参数)
select @a=(select sid from inserted )(给参数赋值)
insert into two (sid1) values (@a)
end
这样你给one表插入数据时 ,two表会自动插入数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hit_lubin
2011-07-12 · TA获得超过7889个赞
知道大有可为答主
回答量:1554
采纳率:100%
帮助的人:2007万
展开全部
一种是老老实实的写两个插入语句。分别插入到两张表。
另一种方法可以写一个触发器,写在其中一张表上,增加时触发,这样这张表插入数据时触发器执行,在触发器里面写插入另一张表的语法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wzrmwvnic
2011-07-14 · TA获得超过163个赞
知道答主
回答量:445
采纳率:0%
帮助的人:251万
展开全部
sql server 和mysql可以这样:

use 库1;
go
insert A表(要插入的字段列表)
select 要插入的字段列表
from 库2.B表 ;

--注意字段的对应....

oracle 可以使用 exp导出 然后imp导入
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式