解决方案是 SQL 视图,使用视图有几个不同的原因:
* 1. *隐藏数据复杂性。您可能希望提供一个运行常用 SQL 语句的视图,而不是强迫您的用户学习 T-SQL JOIN 语法。
* 2. *保护数据。如果您的表格在某些列中包含敏感数据,您可能希望对某些用户组隐藏这些列。例如,客户姓名、地址和他们的社会保险号可能都存储在同一个表中;但是,对于运输文员等较低级别的员工,您可以创建一个仅显示客户姓名和地址的视图。您可以授予视图权限,而不允许用户查询基础表。您可能希望通过以下几种方式来保护您的数据:
a.创建一个视图以允许仅读取表中的某些列。一个常见的例子是雇员表中的薪水列。您可能不希望所有人员都能够阅读经理或彼此的薪水。这称为对表进行垂直分区,并通过在 CREATE VIEW 语句中仅指定适当的列来完成。
b.创建一个视图以允许从表中仅读取某些行。例如,您可能有部门经理的视图。这样,每个经理只能向其部门的员工提供加薪。这称为水平分区,通过在创建视图的 SELECT 语句中提供 WHERE 子句来实现。
* 3. *执行一些简单的业务规则。例如,如果您希望生成需要接收秋季目录的客户列表,您可以创建以前在秋季购买过您的衬衫的客户的视图。
* 4. *使用 BCP 导出数据。如果您使用 BCP 将 SQL Server 数据导出为文本文件,则可以通过视图格式化数据,因为 BCP 的格式化能力非常有限。
* 5. *自定义数据。如果您希望显示一些计算值或列名的格式与基表列不同,您可以通过创建视图来实现。
参考来自http://sqlserverpedia.com。