2010-06-22 52 views

回答

2

您需要在視圖上創建INSTEAD OF INSERT和INSTEAD OF UPDATE觸發器,然後在觸發器中編寫插入和更新語句以操縱3個基礎表中的數據。見this MSDN article有一個簡單的例子。您可以在觸發器定義的上下文中的特殊INSERTED表中找到所需的編輯值。

5

查看SQL Server中可以updatable, but there are restrictions (CREATE VIEW, Updatable View section)

  • 任何修改,包括UPDATE,INSERT和DELETE語句,必須從只有一個基表中的列。
  • 在視圖中修改的列必須直接引用表列中的基礎數據。無法通過任何其他方式導出列,例如通過以下方式:
    • 集合函數:AVG,COUNT,SUM,MIN,MAX,GROUPING,STDEV,STDEVP,VAR和VARP。
    • 計算。該列無法從使用其他列的表達式計算。通過使用集合運算符UNION,UNION ALL,CROSSJOIN,EXCEPT和INTERSECT形成的列相當於計算,並且也不可更新。
  • 被修改的列不受GROUP BY,HAVING或DISTINCT子句的影響。
  • TOP不在視圖的select_statement的任何位置與WITH CHECK OPTION子句一起使用。

否則,您將不得不使用INSTEAD OF triggers

相關問題