視圖的好處,它可以橫縱分割表,在視圖上的可以執行與在表上一至的操作,如:Insert、Update、Delete。這些操作與在表上的相應操作大至相同,不過也有些不同之處。在視圖上進行操作的列是只屬於視圖的列,這些列不一定包含對應表中的所有列,所以在執行Insert操作或Update操作時,如果視圖中有未被包含的列,並且這些列是Not NULL的,那麼在視圖上執行相應的Insert操作或Update操作時就會失敗,還有在視圖上如果使用了Group By、Distinct等操作時,不能執行Insert或Update操作。還有一點需要注意的是,如果視圖中包含的不只是一個表,那麼執行Insert或Update一次只能對視圖中的某個表進行操作,也就是說,如果視圖中包含了兩個表A、B,那麼就需要對視圖執行兩次Insert或Update操作,一次操作表A的各個列,一次操作表B的各個列。
語法:
Create View View_Name [columnname,……]
AS Select Statement [WITH CHECK OPTION] [WITH ENCRYPTION]
舉例說明:
Use SomeDataBase Go –這句與MySQL的一樣,就是表示要進入某個數據庫
Create View SomeView –創建一個視圖SomeView
As
Select * from UserInfo [WITH ENCRYPTION]
–在Select 語句後加上With Encryption 表示對視圖進行加密,這樣其它用戶查看這個視圖時,就看不到視圖中的內容。
GO
事務:
在MS SQL Server中對事務的操作一共有四個,它們是:
Begin Transaction、Commit、Rollback和Save Transaction。
索引:
索引有四種,唯一索引、簇索引、非簇索引和復合索引。
表掃描一般用在大表返回絕大多數數據或小表查詢某些數據時使用。在大表中查詢有限量數據,一般使用索引。
索引其實是一種與表中的列相綁定的對象。
使用索引的時機:
1.經常被查詢搜索的列。
2.在Order by子句中使用的列。
3.是外鍵或主鍵的列。
4.該列的值唯一的列。
不能使用或不適合使用索引的情況:
1.在查詢中很少被引用的列。
2.數據類型為bit、text和Image等的列不能建立索引。
語法:
Create [UNIQUE][CLUSTERED|NONCLUSTERED] Index index_name
On TableName (Column [,…n])
舉例說明:
Create UNIQUE CLUSTERED Index SomeIndex On UserInfo (UserName)
這就是在表UserInfo的列UserName上建立的一個唯一簇集索引。