作者shadow0828 (瞬)
看板Database
标题Re: [SQL ] 对view新增删除,如何同步到来源table
时间Sun Aug 28 18:41:17 2016
View Insert Sync Foreign Table:
※ 引述《uvyyvu (none)》之铭言:
: 资料库名称:MSSQL 2012
: 资料库版本:略
: 内容/问题描述:
: 大家好:
: 有A和B两个table,并用join产生一个view,称为viewAjoinB,相关资料如下
: 其中BookstoreID为A的PK,BookID为B的PK也是A的FK
: table A=>
: BookstoreID Location BookID
: -----------------------------
: 1 台北 A1
: 2 台中 A2
: 3 高雄 A1
: table B=>
: BookID BookName
: ---------------------
: A1 论语
: A2 诗经
: viewAjoinB=>
: BookstoreID Location BookID BookName
: ------------------------------------------
: 1 台北 A1 论语
: 2 台中 A2 诗经
: 3 高雄 A1 论语
View Name : viewAjoinB
: 以下问题请教:(问题1和2是不连续的独立问题)
: (1)开台南分店--->对view新增
: viewAjoinB=>
: BookstoreID Location BookID BookName
: ------------------------------------------
: 1 台北 A1 论语
: 2 台中 A2 诗经
: 3 高雄 A1 论语
: 4 台南 A1 论语 ----->新增
: 希望能同步回table A,使A和B的表格如下
: table A=>
: BookstoreID Location BookID
: -----------------------------
: 1 台北 A1
: 2 台中 A2
: 3 高雄 A1
: 4 台南 A1----->新增
: table B=> 不变
AI(Auto Insert) Trigger:
Insert into tableA(BookstoreID,Location,BookID)
Select BookStore,Location,BookID
From insertd
tableB不变的话就不用写。
: BookID BookName
: ---------------------
: A1 论语
: A2 诗经
: (2)关闭台中分店--->对view删除
: viewAjoinB=>
: BookstoreID Location BookID BookName
: ------------------------------------------
: 1 台北 A1 论语
: 3 高雄 A1 论语
: 希望能同步回table A,使A和B的表格如下
: table A=>
: BookstoreID Location BookID
: -----------------------------
: 1 台北 A1
: 3 高雄 A1
: table B=> 不变
: BookID BookName
: ---------------------
: A1 论语
: A2 诗经 ----->A2还要存在不能删除
AD(Auto Delete) Trigger:
Delete From tableA
where BookstoreID = (Select BookstoreID From Deleted)
tableB的部分不用写 除非你有用BookID关联起来并且设定同步删除
不然不会删掉。
: 查到view的来源若大於两个table,只能用create trigger做,
: 看网路范例仍不知怎套用在我的案例...
: 实务上不知怎处理这种问题? 总不能view更新,原始资料没变吧?
: 麻烦各位了,还在学习DB的新手@@
: 非常谢谢您!!
写在View上面的Trigger中 目前想到是这样,有错还请高手不吝指正。
--
爱的她 说的话 多尴尬 字句都是伤疤
泪双挂 如雨下 满脸颊 也无意再挣扎
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.249.136.118
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1472380881.A.24F.html