- 在AdventureWorks2008数据库中添加一个名为HumanResources.Managers的视图,只显示管理其他雇员的雇员。
USE AdventureWorks
GO
CREATE VIEW HumanResources.Managers
AS
SELECT he.*
FROM
HumanResources.Employee he
WHERE
he.EmployeeID IN (
SELECT DISTINCT ManagerID
FROM HumanResources.Employee he2
)
- 将刚创建的视图进行加密。
USE AdventureWorks
GO
ALTER VIEW HumanResources.Managers
WITH ENCRYPTION
AS
SELECT he.*
FROM
HumanResources.Employee he
WHERE
he.EmployeeID IN (
SELECT DISTINCT ManagerID
FROM HumanResources.Employee he2
)
- 根据ManagerID和EmployeeID列,对新视图创建索引。
USE AdventureWorks
GO
CREATE UNIQUE CLUSTERED INDEX ivManagers
ON HumanResources.Managers(ManagerID, EmployeeID)
GO
在执行上面的语句时,发生错误,原因是视图未使用模式绑定。于是使用ALTER VIEW将它修改成模式绑定的。但是仍然不能成功创建索引,因为不能使用子查询。可是,即使用改用连接表的方式,又出现使用了自连接不能创建索引的错误。可是如果既不使用子查询,又不使用自连接,第一题的视图又能怎样创建呢?