不同数据库表复制问题

DIVING_LEE 2011-09-06 01:33:17

create database DB1

use DB1

create table tb_a(
sid int primary key ,
sname varchar(20)
)


create database DB2

use DB2

create table tb_b(
sid int primary key,
sname varchar(20)
)

create trigger tri_insert on tb_a for insert
as
begin

insert into tb_a select * from DB2.dbo.tb_b

end --运行成功


insert into tb_a values (2,'name')

select * from db2.dbo.tb_b -- 结果没添加到 DB2的 tb_b 表


上面是写的SQL,请教下错误在哪里?
...全文
74 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
DIVING_LEE 2011-09-06
  • 打赏
  • 举报
回复
而且如果用

insert into DB2.dbo.tb_b('sss') select ss from tb_a


那么,当表中的列很多,且经常变动呢,该怎么修改合理?
DIVING_LEE 2011-09-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 geniuswjt 的回复:]
create trigger tri_insert on tb_a for insert
as
begin

insert into DB2.dbo.tb_b select * from tb_a
end --运行成功

你太粗心了,写反了
[/Quote] sid 是 identity 呢?
gw6328 2011-09-06
  • 打赏
  • 举报
回复
你确定你是按上面的运行的?
楼上的是一种说法
还有一种,你use db2 后创建触发器,那就是在db2中的表上创建的。不过应该不是介个,是楼上们说的那种情况。
koumingjie 2011-09-06
  • 打赏
  • 举报
回复
insert into tb_a select * from DB2.dbo.tb_b

仔细看看你写的是语句
应该是

insert into tb_b select * from DB1.dbo.tb_a
chuanzhang5687 2011-09-06
  • 打赏
  • 举报
回复
+1[Quote=引用 3 楼 fredrickhu 的回复:]
SQL code
insert into tb_b select * from DB1.dbo.tb_a
[/Quote]
--小F-- 2011-09-06
  • 打赏
  • 举报
回复
insert into tb_b select * from  DB1.dbo.tb_a
yuanwza 2011-09-06
  • 打赏
  • 举报
回复
insert into DB2.dbo.tb_b('sss') select ss from tb_a
geniuswjt 2011-09-06
  • 打赏
  • 举报
回复
insert into DB2.dbo.tb_b select * from inserted

严格点说应该这样,因为你是用触发器
geniuswjt 2011-09-06
  • 打赏
  • 举报
回复
create trigger tri_insert on tb_a for insert
as
begin

insert into DB2.dbo.tb_b select * from tb_a
end --运行成功

你太粗心了,写反了

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧