sqlserver的视图可以带参数?孤陋寡闻了,从没听说过。楼主能不能贴个例子让我学习学习

解决方案 »

  1.   

    语法
    CREATE VIEW [< owner > . ] view_name [ ( column [ ,...n ] ) ] 
    [ WITH < view_attribute > [ ,...n ] ] 
    AS 
    select_statement 
    [ WITH CHECK OPTION ] < view_attribute > ::= 
        { ENCRYPTION | SCHEMABINDING | VIEW_METADATA } 参数
    Owner是拥有视图的用户 ID 的名称。Owner 必须是一个现有的用户 ID。view_name是视图的名称。视图名称必须符合标识符规则。可以选择是否指定视图所有者名称。column是视图中的列名。只有在下列情况下,才必须命名 CREATE VIEW 中的列:当列是从算术表达式、函数或常量派生的,两个或更多的列可能会具有相同的名称(通常是因为联接),视图中的某列被赋予了不同于派生来源列的名称。还可以在 SELECT 语句中指派列名。 如果未指定 column,则视图列将获得与 SELECT 语句中的列相同的名称。 说明  在视图的各列中,列名的权限在 CREATE VIEW 或 ALTER VIEW 语句间均适用,与基础数据源无关。例如,如果在 CREATE VIEW 语句中授予了 title_id 列上的权限,则 ALTER VIEW 语句可以将 title_id 列改名(例如改为 qty),但权限仍与使用 title_id 的视图上的权限相同。
    n是表示可以指定多列的占位符。
      

  2.   

    据我所知oracle不支持带参数的视图,如果一定要完成这种功能,可以使用程序包返回游标,这样程序包中的过程可以带入参数,并返回一个游标(可以作为结果集对待)
      

  3.   

    看来我de映像来源于sqlserver了,查找了一些资料,暂时还是没有发现。
      

  4.   

    不存在这种视图,再说视图带参数有什么必要性的使用场合吗?我们从视图中选择数据时where条件就是最好的输入参数和过滤条件。
      

  5.   

    用存储过程返回游标(游标引用)可以代替带参数的视图不同意楼上的说法。视图是预编译的查询,通过共享查询计划减少重复解析提高查询性能。一般来说视图查询比等价的直接表查询要快一些。视图有简化权限控制和表查询sql的作用,但是在数据修改上有一些限制和复杂性。视图本身并不能降低查询性能,只是视图查询不方便SQL优化。