存储过程和视图的区别?

ponycsdn 2003-08-25 11:04:30
我搞不清楚存储过程和视图到底区别在那里。在我看来存储过程可以干所有视图可以干的东西。为什么还要用视图呢?
我是初学者请勿见笑!
...全文
255 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
programeyonger 2003-11-19
  • 打赏
  • 举报
回复
在应用程序里怎么样使用视图?什么时候才使用视图啊??
azev 2003-11-12
  • 打赏
  • 举报
回复
fav
starstargao 2003-09-09
  • 打赏
  • 举报
回复
视图能不能放在子查询中呀
TaoGeGe 2003-08-25
  • 打赏
  • 举报
回复
打個比方:
在程式開發中,存儲過程好比是過程,是操作者,
而視圖就好比是一個存儲數據地址的變量數組,是被操作者,但它本身又操作了別人。
(可能不太恰當,不必深究,理解意思就好)
nboys 2003-08-25
  • 打赏
  • 举报
回复
存储过程可以使得对数据库的管理、以及显示关于数据库及其用户信息的工作容易得多。存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。

存储过程可包含程序流、逻辑以及对数据库的查询。它们可以接受参数、输出参数、返回单个或多个结果集以及返回值。

可以出于任何使用 SQL 语句的目的来使用存储过程,它具有以下优点:

可以在单个存储过程中执行一系列 SQL 语句。


可以从自己的存储过程内引用其它存储过程,这可以简化一系列复杂语句。


存储过程在创建时即在服务器上进行编译,所以执行起来比单个 SQL 语句快。



所以存储过程可以定义自己的任意操作数据,而视图只是保存在数据库中的 SELECT 查询,简单的说视图相当于一个限制了条件的表.在存储过程中可以像表一样调用视图.
nboys 2003-08-25
  • 打赏
  • 举报
回复
更新结果 对视图和查询的结果集更新限制是不同的。

排序结果 可以排序任何查询结果,但是只有当视图包括 TOP 子句时才能排序视图。

生成查询计划 查询计划是内部策略,通过它数据库服务器尝试快速创建结果集。数据库服务器可以在保存视图后立即为视图建立查询计划。但是对于查询,数据库服务器直到查询实际运行时才能建立查询计划——也就是说,直到用户显式请求结果集时。

参数设置 可以为查询创建参数,但不能为视图创建参数。

加密 可以加密视图,但不能加密查询。

nboys 2003-08-25
  • 打赏
  • 举报
回复
存储 视图存储为数据库设计的一部分,而查询则不是。当设计数据库时,可以出于下列原因将视图包括在设计中:

一些数据子集关系到许多用户。由于每个视图都存储在数据库内,所以视图建立特定的数据子集以供任何数据库用户使用。


视图可以隐藏基表。可以禁止所有用户访问数据库表,而要求用户只能通过视图操作数据。这种方法可以保护用户和应用程序不受某些数据库修改的影响。例如,如果可以创建一个名为"本月销售额"的视图。在每月的第一天,可以相应地修改视图的定义。如果没有这个视图,用户每月都必须重新编写查询以选择相应月份的销售额。

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧