2012-11-14 105 views
0

我正在使用Sql Server和觸發器。Sql Server每行

在過去我使用Oracle和觸發器。 在Oracle中有一個FOR EACH ROW觸發器的功能。

Sql Server 2000和2005不支持這個,但哪個版本支持。

Regards

+0

你想做什麼? – sventevit

+0

我想知道如果SQL Server在其他版本支持。 – user1773744

+0

[使用插入和刪除表](http://msdn.microsoft.com/en-us/library/ms191300(v = sql.105).aspx)。它們包含所有已刪除,插入或更新的行。 –

回答

2

在SQL Server中沒有等價物。您只需要使用INSERTED和DELETED表,您必須明確匹配才能獲得行 - 行關聯。在某些情況下,表中沒有不可變的GUID或標識列(代理鍵),可能無法將它們進行匹配。

如果需要使用觸發器或確保涉及標識符關鍵字更改的更新一次只能出現在單個行上,則需要確定是否存在此類標識符。

1

不,SQL Server沒有FOR EACH ROW觸發器。您需要檢查inserteddeleted虛擬表 - 要麼對它們執行基於集的操作,要麼使用遊標對它們進行迭代。

+0

所以即使Sql Server 2012也不支持這個 – user1773744