程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server數據庫技術(91)

SQL Server數據庫技術(91)

編輯:關於SqlServer
視圖與表具有相似的結構,當向視圖中插入或更新數據時,實際上對視圖所引用的表執行數據的插入和更新。但是通過視圖插入、更新數據和表相比有一些限制,下面通過具體的例子來講述通過視圖插入、更新數據以及其使用的限制。

SQL Server數據庫技術(91)(圖一)


使用SELECT 語句,可以在視圖和表中查到該條記錄。但是如果執行下面的語句,雖然仍可以成功執行,但只可以在表而不是視圖中查到該條數據。

SQL Server數據庫技術(91)(圖二)


注意:由於向視圖插入數據實質是向其所引用的基本表中插入數據,所以必須確認那些來包括在視圖列但屬於表的列允許NULL值或有缺省值。

SQL Server數據庫技術(91)(圖三)


若要執行INSERT 語句,則在同一個語句只能對屬於同一個表的列執行操作。所以,若向視圖au_title 中插入一行數據,只能分別執行以下語句:
insert into au_title (author_au_id, au_lname, au_fname, contract)
values ('234-34-4611','John','Smith', 1)
insert into au_title (title_au_id, title_id, au_ord, royaltyper)
values ('234-34-4611','BU1111',1,50)
通過視圖對數據進行更新與刪除時需要注意到兩個問題:
執行UPDATE DELETE 時,所刪除與更新的數據,必須包含在視圖結果集中;
如果視圖引用多個表時,無法用DELETE 命令刪除數據,若使用UPDATE 則應與INSERT 操作一樣,被更新的列必須屬於同一個表。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved