視圖的作用:
1、視圖隐藏了底層的表結構,簡化了數據訪問操作,客戶端不再需要知道底層表的結構及其之間的關系。
2、建立中間表,方便查詢。
3、基表中的數據就有了一定的安全性。視圖提供了一個統一訪問數據的接口。(即可以允許用戶通過視圖訪問數據的安全機制,而不授予用戶直接訪問底層表的權限)。
因為視圖是虛拟的,物理上是不存在的,隻是存儲了數據的集合,我們可以将基表中重要的字段信息,可以不通過視圖給用戶,視圖是動态的數據的集合,數據是随着基表的更新而更新。用戶對視圖隻能查詢,不可以随意地更改和删除,可以保證數據的安全性。
4、可以合并分離的數據,創建分區視圖。
視圖還可以被嵌套,一個視圖中可以嵌套另一個視圖。
創建表:
--------創建表---------判斷表是否存在--if exists (select * from sysobjects where name = ‘Tab_EdsProd’)drop table Tab_EdsProdgo--創建表create table Tab_EdsProd(Mid int identity(1,1) primary key,Code varchar(10) null,Name varchar(20) null)--添加數據insert into Tab_EdsProd(Code,Name) values(‘001’,‘張三’);insert into Tab_EdsProd(Code,Name) values(‘002’,‘李四’)--查詢數據select * from Tab_EdsProd
創建視圖:
--------創建視圖-------–判斷是否存在–if exists (select * from sysobjects where name = ‘View_EdsProd’)drop view View_EdsProdgo--創建視圖create view View_EdsProd
with ENCRYPTION -- 為不可修改視圖asselect * from Tab_EdsProd where Mid>1go--使用視圖–select *from View_EdsProd
說明:
schema_name:是視圖所有者的名稱,一般為 dbo。(指定視圖所有者名稱是可選的。)
view_name:是視圖的名稱。
ENCRYPTION:對加密進行加密,加密之後不可修改。使用 WITH ENCRYPTION 可以防止将視圖作為 SQL Server 複制的一部分進行發布。
分區視圖:
分區視圖是由 UNION ALL 的所有成員表定義的視圖,即擁有相同的表結構、字段、數據類型等,不相同的數據集。
分區視圖又分為 本地式分區視圖和分布式分區視圖。本地式分區視圖是同一個數據庫存在相同的表結構、字段、數據類型等的表使用 UNION ALL 創建的視圖;
分布式分區視圖就是數據源存在于不同的數據庫或不同的數據庫服務器使用 UNION ALL 創建的視圖。
視圖不能包含 ORDER BY 子句,除非SELECT語句的選擇列表中還有一個 TOP 子句。
視圖不能使用 INTO 關鍵字。視圖不能包含 OPTION 子句。
視圖不能有對臨時表或表變量的引用。視圖最多可以有 1024 列。
with encryption 為不可修改視圖:
如果添加該選項,則可以确保沒有人能夠查看得到您的代碼(甚至是你自己)。如果要構建發布商業軟件,或者出于安全性的考慮不想讓用戶看到所修改的或訪問的數據,那麼這個選項是非常有用的,很明顯沒如果想再以後子重新創建觸發器,那麼需要保存創建觸發器的代碼副本,以便在其他地方使用。
和視圖與存儲過程一樣,使用with encryption 選項需要記住的是,每次在觸發器上使用alter 語句時都必須重新應用該選項。如果使用alter trigger 語句不包含with encryption 選項,那麼觸發器就不再被加密。
視圖加密與不加密:
sp_helptext,查看視圖SQL語句
使用dbForge SQL Decryptor查看建視圖語句
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!