我想在該視圖中創建視圖我想插入記錄或基於特定條件更新記錄,因此我們可以在SQL視圖中插入或更新。我們可以在視圖中插入或更新語句嗎?SQL視圖中的DML語句
-2
A
回答
1
簡答:是的。但是有限制。
例如:(來自http://msdn.microsoft.com/en-us/library/ms180800(v=sql.90).aspx截取)
的任何修改,包括UPDATE,INSERT和DELETE語句,必須只從一個基本表中的列。
視圖中正在修改的列必須直接引用表列中的基礎數據。它們不能以任何其他方式導出,例如:
- 集合函數(AVG,COUNT,SUM,MIN,MAX,GROUPING,STDEV,STDEVP,VAR和VARP)。 2.計算;該列不能使用其他列的表達式進行計算。使用集合運算符(UNION,UNION ALL,CROSSJOIN,EXCEPT和INTERSECT)形成的列相當於一個計算,並且也不可更新。
被修改的列不能被GROUP BY,HAVING或DISTINCT子句影響。
當指定WITH CHECK OPTION時,TOP不能在視圖的select_statement中的任何位置使用。
的sooo ...如果它是一個相對簡單的insert
或update
你想實現的話,那是非常可能的 - 但更復雜的查詢(和視圖),則越難。
如果可以的話,我還會提供一些反對的建議 - 在我看來,它增加了一層不必要的複雜性,並且(作爲必須解開其他使用此過程的查詢的人員),真的很痛苦保持。
+0
「我的問題是我們可以在視圖中插入或更新語句」。正確的答案是否定的!您正在回答有關插入或更新語句是否可以將視圖作爲目標的不同問題。 –
0
不,您不能在視圖中使用插入或更新語句。請參閱文檔爲CREATE VIEW
CREATE VIEW [ schema_name . ] view_name [ (column [ ,...n ]) ]
[ WITH <view_attribute> [ ,...n ] ]
AS select_statement
[ WITH CHECK OPTION ] [ ; ]
它強制執行,該定義必須是SELECT
聲明。
相關問題
- 1. 從Azure執行Azure SQL DML語句ML
- 2. 爲什麼SQL語句分爲DDL,DML,DCL和TCL語句?
- 3. SQL視圖語句連接
- 4. SQL視圖(如果語句)
- 5. 創建視圖中的SQL語句
- 6. Oracle:檢查dml語句
- 7. BigQuery INSERT DML語句限制
- 8. 在視圖後面獲取sql語句
- 9. 爲什麼'Select'被稱爲DML語句?
- 10. Oracle SQL - DML語句是否會導致對象無效?
- 11. 刪除既可以是DDL語句又可以是DML語句
- 12. Sql Server - 獲取現有視圖的視圖創建語句
- 13. SP中的Dml語句運行並行或順序sql服務器?
- 14. oracle 8i中dml語句中的函數替換
- 15. 在一個腳本中混合使用DDL語句和DML語句
- 16. sql中的語句
- 17. SQL語句中的Where語句中的IF語句
- 18. 如何找到在MySQL中創建視圖的SQL語句?
- 19. where語句中的case語句 - SQL Server
- 20. SQl if where語句中的語句
- 21. 如何在MySQL DML語句中設置特定的UNIQUE列
- 22. 如何提高此DML語句中的性能?
- 23. SQl語句來監視SQL Server鎖
- 24. 更改MySQL視圖中的select語句
- 25. 視圖錯誤中的條件語句
- 26. SQL視圖語法
- 27. 列表視圖if語句
- 28. 用語句創建視圖
- 29. Select語句詳細視圖
- 30. 試圖找出SQL語句
您似乎已經忘記提問... –
我的問題是我們可以插入或更新聲明 –
您使用的是什麼RDMS? – mwan