我有兩個表,Table_A和Table_B。 Table_A與Table_B具有一對多的關係。如何編寫更新觸發器以基於SQL Server 2008中另一個表中的值更新當前表?
在子表(Table_B)中插入一條記錄後,我希望使用觸發器從父表(Table_A)的字段中獲取值並更新Table_B中當前插入的記錄。
表-A
PK|EmpID|MemID|Firstname|Lastname
----------------------------------
1 |1234 |AB123|John | Doe
2 |5678 |CD456|Jane | Smith
表-B
PK|EmpID|MemID|Description
---------------------
1 |1234 |NULL |Finance
2 |1234 |NULL |IT
3 |5678 |NULL |Finance
4 |5678 |NULL |Management
觸發應該抓住從表-A的MemID值,並更新它在表-B,其中[表-A]。[的EmpID] = [對應的值表-B] [的EmpID]。當然,後表-B 4個插件的結果應該是如下:
PK|EmpID|MemID|Description
---------------------
1 |1234 |AB123|Finance
2 |1234 |AB123|IT
3 |5678 |CD456|Finance
4 |5678 |CD456|Management
我廣泛搜索等技術的網站,但似乎無法找到一個與此特定情形。作爲一個絕望的舉動,我已經註冊到這個網站,這將是我的第一個求助。
以下是我嘗試在MS SQL Server 2008 R2中創建第一個觸發器的嘗試。
CREATE TRIGGER dbo.trgInsMemID
ON dbo.Table_B
AFTER INSERT
AS
BEGIN
UPDATE dbo.Table_B
SET MemID =
(SELECT MemID
FROM inserted i
JOIN dbo.Table_A c ON c.EmpID = i.EmpID)
FROM dbo.Table_B b
JOIN inserted i ON i.MemID = b.MemID
END
歡迎來到StackOverflow。感謝您發佈表結構,數據,預期結果以及迄今的嘗試。它顯示了努力,並使社區更容易幫助你。 +1 –