Re: [SQL ] 對view新增刪除,如何同步到來源table
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://www.ptt.cc/bbs/Database/M.1472380881.A.24F.html
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
Database 近期熱門文章
PTT數位生活區 即時熱門文章