在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 數(shù)據(jù)庫/ SQL Server視圖
SQL Server存儲過程
SQL Server教程
SQL Server查詢設(shè)計器
SQL Server添加數(shù)據(jù)
SQL Server鏈接服務(wù)器
SQL Server創(chuàng)建表
SQL Server數(shù)據(jù)庫模式
SQL Server安裝
SQL Server創(chuàng)建數(shù)據(jù)庫
SQL Server 2014版
關(guān)于Microsoft SQL Server
SQL Server服務(wù)器角色
SQL Server視圖
SQL Server SQL腳本
Windows2012 R2上安裝.NET3.5框架
SQL Server管理套件(SSMS)

SQL Server視圖

在SQL Server中,視圖是被存儲在數(shù)據(jù)庫中的預(yù)寫查詢。視圖是由一個SELECT語句,當(dāng)你運行視圖,會看到它的結(jié)果,就像打開一個表時一樣。 有些人喜歡把視圖稱作為虛擬表。這是因為,一個視圖可以拉動多個表,并匯總數(shù)據(jù)在一起并將其顯示,就好像它是一個單一的表。

視圖的優(yōu)點

當(dāng)有多個用戶提供不同級別的訪問權(quán)限,需要看到在數(shù)據(jù)庫中(但不一定是所有數(shù)據(jù))中的數(shù)據(jù)的各不同部分的視圖,可能是有用的。視圖可以執(zhí)行以下操作:

  • 限制訪問特定的表中的行
  • 限制訪問特定的表中的列
  • 從多個表中加入列,并呈現(xiàn)出來,好像他們是一個單一的表的一部分
  • 呈現(xiàn)匯總的信息(如COUNT函數(shù)的結(jié)果)

視圖語法

創(chuàng)建一個視圖通過使用CREATE VIEW語句,其次是SELECT語句。

?
CREATE VIEW ViewName AS
SELECT ...

創(chuàng)建視圖

我們以前使用的查詢設(shè)計器創(chuàng)建兩個表中選擇數(shù)據(jù)的查詢?,F(xiàn)在讓我們在查詢并將其保存為一個名為“ToDoList”的視圖?;旧?,我們需要做的就是把CREATE VIEW ToDoList的AS查詢,像這樣的面前:

?
CREATE VIEW ToDoList AS
SELECT	Tasks.TaskName, Tasks.Description
FROM	Status INNER JOIN
			Tasks ON Status.StatusId = Tasks.StatusId
WHERE	(Status.StatusId = 1)

一旦運行該腳本,刷新瀏覽文件夾在左窗格中,你會看到視圖就在左窗格中:

Screenshot of view

運行視圖

所以,現(xiàn)在你已經(jīng)創(chuàng)建的視圖,你可以簡單地查看結(jié)果選擇它就像你會選擇任何表。而不是輸入出大SELECT語句的INNER JOIN等等,可以簡單地鍵入select* from todolist,它會運行完整的查詢:
Screenshot of view results

注:也可以在視圖上單擊鼠標右鍵,并選擇 "Select Top 1000 Rows".

數(shù)據(jù)更新

該視圖將返回最新的數(shù)據(jù)。如果表中的數(shù)據(jù)發(fā)生變化時,視圖的結(jié)果會改變過。所以,如果要添加新任務(wù)以及狀態(tài) "To Do", 下一次運行來看,這將包括在結(jié)果集中的新紀錄。

修改視圖

可以通過使用ALTER而不是CREATE修改現(xiàn)有的視圖。

因此,如果我們想要更改視圖使用StatusName字段,而不是StatusId,我們可以這樣做:

?
ALTER VIEW ToDoList AS
SELECT	Tasks.TaskName, Tasks.Description
FROM	Status INNER JOIN
			Tasks ON Status.StatusId = Tasks.StatusId
WHERE	(Status.StatusName = 'To Do')

注:使用查詢設(shè)計器也可以右鍵單擊視圖,然后選擇設(shè)計來修改您的視圖。

正如你所看到的,視圖讓您保存查詢,以便可以做一個SELECT,再次運行它也會比較簡單。但它們的確有其局限性。它們允許選擇數(shù)據(jù),但不允許執(zhí)行任何業(yè)務(wù)邏輯,如條件語句等。 要做到這一點需要一個存儲過程。