浅谈视图

 

语法

CREATE VIEW view_name [( column

[,...n ] ) ]

[ WITH < view_attribute >  [ ,...n ]  ]

AS

select_statemnet

[ WITH CHECK OPTION ]

< view_attribute  > ::=

      { ENCRYPTION | SCHEMABINDING | VIEW_METADATA }

参数

view_name

视图名。

AS

视图要执行的操作

select_statement

定义视图的SELECT语句

WITH ENCRYPTION

将包含CREATE VIEW语句文本的系统表进行加密。可以防止该视图被复制。

创建视图

创建表

IF EXISTS(
     SELECT name
     FROM sysobjects
     WHERE name='MySortTable' AND xtype='U')
DROP TABLE MySortTable 
GO
CREATE TABLE MySortTable
(DictionarySort nvarchar(10) ,
 BinarySort nvarchar(10)  
GO
插入数据

INSERT MySortTable VALUES 
('Alpha','Alpha'),
('Bravo','Bravo'),
('Charlie','Charlie'),
('alpha','alpha'),
('bravo','bravo'),
('charlie','charlie') 
GO

A.使用简单的CREATE VIEW

该例使用一条最简单的SELECT语句创建了视图。

IF EXISTS(
     SELECT TABLE_NAME
     FROM INFORMATION_SCHEMA.VIEWS
     WHERE TABLE_NAME='title_view')
DROP VIEW title_view 
GO
CREATE VIEW title_view
AS
SELECT
DictionarySort,
BinarySort
FROM MySortTable
GO

执行视图

该示例告诉SQL Server把执行语句所得到的所有行和列给我。

SELECT * FROM title_view

EXEC sp_helptext ENCRYPTION_view  运行这个存储过程可以查询视图的源码,如果视图加密系统会提示“文本已加密”。

B.使用WITH ENCRYPTION

这个选项一般用于加密视图。

IF EXISTS(
     SELECT TABLE_NAME
     FROM INFORMATION_SCHEMA.VIEWS
     WHERE TABLE_NAME='ENCRYPTION_view')
DROP VIEW title_view 
GO
CREATE VIEW ENCRYPTION_view
(
DictionarySort ,
BinarySort,
DB
)
WITH ENCRYPTION
AS
SELECT
DictionarySort,
BinarySort,
DictionarySort+' '+BinarySort
FROM MySortTable
GO
SELECT * FROM ENCRYPTION_view
GO

查询经过加密过的存储过程的文本

SELECT 
syscomments.id,
syscomments.text 
FROM syscomments
JOIN  sysobjects on syscomments.id=sysobjects.id AND sysobjects.name='ENCRYPTION_view'

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值