SSIS 判断怎么一条数据被删除了

moonwrite 2012-02-06 04:24:47
SSIS 判断怎么一条数据被删除了

数据仓库1 → 数据仓库2

如果仓库1删了一条记录 如果是物理删除 就是完全删除掉的那种
那么怎么判断被删除的记录 然后把仓库2的删除了


有什么好的解决方案呢
...全文
109 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Warren 2012-02-10
  • 打赏
  • 举报
回复
在数据仓库里面做经常性删除还是比较少见的;
您的这个问题貌似要同步这两个数据仓库的数据,这种情况最好不在ETL中去做;
如果目前的状况决定必须这样做,可以使用lookup组件完成,LookUp没有比配上的数据做删除。
kkk1226 2012-02-07
  • 打赏
  • 举报
回复
触发器貌似不能跨数据库
moonwrite 2012-02-06
  • 打赏
  • 举报
回复
那ssis用来干什么

触发器 可以跨数据库吗 如sql server 到 orcale

如果可以 请给出例子 谢谢
dawugui 2012-02-06
  • 打赏
  • 举报
回复
[Quote=引用楼主 moonwrite 的回复:]
SSIS 判断怎么一条数据被删除了

数据仓库1 → 数据仓库2

如果仓库1删了一条记录 如果是物理删除 就是完全删除掉的那种
那么怎么判断被删除的记录 然后把仓库2的删除了


有什么好的解决方案呢
[/Quote]不建议用ssis去做这个东西,应该使用触发器去做.
参考如下:
--触发器的操作1

create table 化验室纱组(本厂编号 int,客户 int,色号 int,纱支 int)
create table 化验室布组(本厂编号 int,客户 int,色号 int,布类 int)
go
create trigger my_trig on 化验室纱组 for insert ,update ,delete
as
if not exists(select 1 from inserted)
delete 化验室布组 from deleted t where 化验室布组.本厂编号 = t.本厂编号
else if not exists(select 1 from deleted)
insert into 化验室布组(本厂编号 ,客户 ,色号) select 本厂编号 ,客户 ,色号 from inserted
else
update 化验室布组 set 客户 = t.客户 , 色号 = t.色号 from inserted t where 化验室布组.本厂编号 = t.本厂编号
go

--1、insert 对化验室纱组插入数据,然后查看化验室布组表的数据
insert into 化验室纱组 values(1 , 2 , 3 , 4)
insert into 化验室纱组 values(5 , 6 , 7 , 8)
go
select * from 化验室布组
/*
本厂编号 客户 色号 布类
----------- ----------- ----------- -----------
1 2 3 NULL
5 6 7 NULL

(所影响的行数为 2 行)
*/

--2、update , 更改化验室纱组表中本厂编号=1的色号=6
update 化验室纱组 set 色号 = 6 where 本厂编号 = 1
go
select * from 化验室布组
/*
本厂编号 客户 色号 布类
----------- ----------- ----------- -----------
1 2 6 NULL
5 6 7 NULL

(所影响的行数为 2 行)
*/

--3、delete 化验室纱组表中本厂编号=1的那条数据
delete from 化验室纱组 where 本厂编号 = 1
go
select * from 化验室布组
/*
本厂编号 客户 色号 布类
----------- ----------- ----------- -----------
5 6 7 NULL

(所影响的行数为 1 行)
*/

drop table 化验室纱组 , 化验室布组
mingpei0703 2012-02-06
  • 打赏
  • 举报
回复
写个触发器吧

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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