• 改或新增任何资料 > 当设计资料库时
  • 当设计资料库时

    免费下载 下载该文档 文档格式:PDF   更新时间:2007-04-02   下载次数:0   点击次数:1
    文档基本属性
    文档语言:English
    文档格式:pdf
    文档作者:Shawn J. McDermott
    关键词:
    主题:
    备注:
    点击这里显示更多文档属性
    7
    检 视
    ◆ 栏位名称:检视回传的各资料行名称.一般用在从算术运算式,函数或
    常数衍生得来的资料行,而非基底物件本身的资料行,也就是经由运算 生成的资料行需要给定名称.或希望检视回传之资料行名称不同於来源 的基底资料行名称,也可另给名称.当然,可以直接在 SELECT 陈述 式中指派资料行别名(alias). 如果未指定「栏位名称」,检视回传的资料行名称会与 SELECT 陈述 式中资料行名称相同.
    ◆ select_语法:定义 SELECT 陈述式,可以使用多份资料表和其他检
    视.其来源不必仅是单一资料表的资料列和资料行之子集,可以利 用复杂的 S E L E C T 子句来建立使用多份资料表或其他检视的检视. 其 FROM 子句依然可以使用 和 .以及透过 UNION 或 UNION ALL 来分隔多个 SELECT 陈述式. 在索引检视中,SELECT 陈述式必须是单一资料表,或搭配部分的汇总 函数来联结(JOIN)多份资料表. 检视定义中的 SELECT 子句不能包括下列项目:
    ◆ COMPUTE 或 COMPUTE BY 子句. ◆ ORDER BY 子句:除非 SELECT 陈述式中有 TOP 子句.ORDER BY
    子句只能用来判定 TOP 子句在检视中传回的资料列.除非同时在使用 该检视的外层查询指定 ORDER BY 子句,否则检视内含的 ORDER BY 子句并不保证查询检视时,会传回排序后的结果.范例如程式码列表 7-1:
    338
    USE Northwind --建立 View 时,不可以指定 Order By 子句,会有以下错误 /* 讯息 1033,层级 15,状态 1,程序 vwCustomsers,行 4 除非同时指定了 TOP 或 FOR XML,否则 ORDER BY 子句在检视,内嵌函数,衍 生资料表,子查询及一般资料表运算式中均为无效. */ CREATE VIEW vwCustomers AS
    7.1
    建 立 检 视
    SELECT CustomerID,CompanyName,Country FROM Customers ORDER BY Country GO --检视内的 Order By 子句仅是用来辅助 TOP 找纪录 CREATE VIEW vwCustomers AS SELECT TOP(10) CustomerID,CompanyName,Country FROM Customers ORDER BY Country GO --真正想要排序,要在查询检视时,指定 Order By SELECT * FROM vwCustomers ORDER BY Country
    程式码列表 7-1:检视中的 Order By 子句仅是用来支援 TOP 选择纪录, 不可依靠其子句评估回传资料的排序
    ◆ CHECK OPTION:强制所有针对检视执行的资料修改,遵照「select_
    语法」内所设定的过滤准则.确保在认可修改后,仍可以透过检视查询 到被修改的资料纪录.范例如程式码列表 7-2:
    USE Tempdb CREATE TABLE t(c1 int) GO CREATE VIEW v AS GO INSERT V VALUES(5) SELECT * FROM t WHERE c1 > 10
    SQL Server 2005 T-SQL 资料库设计
    339
    --因为不合 WHERE 条件,所以对 View 所做的更新 --在查询 View 的时候根本看不到 SELECT * FROM v --若要防止此种更新,可以透过 WITH CHECK OPTION
    7
    检 视
    ALTER VIEW v AS SELECT * FROM t WHERE c1 > 10 GO --此时会有以下的错误 /* 讯息 550,层级 16,状态 1,行 1 尝试插入或更新已经失败,因为目标检视指定了 WITH CHECK OPTION 或跨越指 定了 WITH CHECK OPTION 的检视,而该作业产生的一或多个资料列在 CHECK OPTION 条件约束下并不合格. */ INSERT V VALUES(6) --同样地,修改也会有错误 INSERT V VALUES(60) --不可以修改完,其结果让该笔记录不合 WHERE 条件 UPDATE V SET c1=6 WHERE c1=60 --只删除 View 所看到的纪录 DELETE v --仍可看到资料表内保有检视未参照的纪录 SELECT * FROM t

    上一页下一页

  • 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
  • 免费下载 PDF格式下载
  • 您可能感兴趣的
  • 不用任何软件改cf军衔  新增床位相关资料  问道注册资料怎么改  问道怎么改资料  上海营改增培训资料  北改资料  恋爱手机版改资料  qq资料年龄怎么改不了  怎么改qq资料