Sql-Server

在索引視圖上觸發

  • March 3, 2020

我創建了一個帶有INSTEAD OF觸發器的索引視圖,但是當在基表級別發生插入時它不會觸發。

這是正常插入生成的計劃(注意聚集索引插入,VW_X.VW_CI其上是表示視圖的聚集索引)

SQL Server 計劃映像

有什麼方法可以跟踪視圖上的插入,儘管插入並沒有真正發生在那裡,而是在創建視圖的基表中發生?

基表插入計劃包含保持索引視圖與視圖定義所定義的基表同步所需的操作。這部分計劃是自動生成的,不能禁用,也不能在視圖上呼叫而不是觸發邏輯。索引視圖的約定是它總是將儲存在視圖中的查詢具體化。

代替視圖(索引或其他)上的觸發器的主要目的是使它們在不能更新時可更新。這個問題沒有解釋你需要實現什麼,但似乎索引視圖不是正確的機制。您可能需要一個單獨的表而不是視圖。如果您需要幫助解決潛在問題,請提出後續問題,最好提供一個獨立的複制腳本。

引用自:https://dba.stackexchange.com/questions/261060