随便胡乱说几点,大家补充一下。
1。预编译,已优化,效率较高。避免了SQL语句在网络中传输然后再解释的低效率。
2。如果公司有专门的DBA,写存储过程可以他来做,程序员只要按他提供的接口调用就好了。这样分开来做,比较清楚。
3。修改方便。嵌入在程序中的SQL语句修改比较麻烦,而且经常不能肯定该改的是不是都改了。SQLSERVER上的存储过程修改就比较方便,直接改掉该存储过程,调用它的程序基本不用动,除非改动比较大(如改了传入的参数,返回的数据等)。
4。会安全一点。不会有SQL语句注入问题。
 
当然,也有缺点。特别是业务逻辑比较复杂时,全用存储过程来写,估计也累的够呛。

■SQL存储过程执行起来比SQL命令文本快得多。当一个SQL语句包含在存储过程中时,服务器不必每次执行它时都要分析和编译它。

■调用存储过程,可以认为是一个三层结构。这使你的程序易于维护。如果程序需要做某些改动,你只要改动存储过程即可

■你可以在存储过程中利用Transact-SQL的强大功能。一个SQL存储过程可以包含多个SQL语句。你可以使用变量和条件。这意味着你可以用存储过程建立非常复杂的查询,以非常复杂的方式更新数据库。

■最后,这也许是最重要的,在存储过程中可以使用参数。你可以传送和返回参数。你还可以得到一个返回值(从SQL RETURN语句)。

(1)安全性。使用视图隐藏了数据的来源。   
(2)方便性。在多表连接查询时,可以使用视图提高效率。  
   
你用了视图后,你更改元数据如,表名,列名,那你就只需要改视图的代码,而不需要改程序! 
如果你要经常对几个表join查询,那你做成视图,用的时候只要select   *   from   view就行了!

最新文章

  1. tcp状态机
  2. python3.5学习笔记--一个简单的图片爬虫
  3. Linux内核驱动之GPIO子系统(一)GPIO的使用
  4. wp8 入门到精通 定时更新瓷贴
  5. 在Activity和Application中使用SharedPreferences存储数据
  6. Effective Java 56 Adhere to generally accepted naming conventions
  7. mysql主从备份、主从切换的例子
  8. 贪心算法——将正整数变为1
  9. C动态内存分配(C与指针实例)
  10. AngularJS路由跳转
  11. 用JQuery写的滚动条,可以改变样式哦!
  12. JDBC 异常简介 jDBC简介(六)
  13. 转 InnoDB索引
  14. centos 6.8 安装git 报错
  15. SignalR WebSocket Error during WebSocket handshake: net::ERR_CONNECTION_RESET
  16. python之路----模块与序列化模块
  17. git工具的使用
  18. [na]代理arp导致的问题(路由卷)
  19. Message Delivery Semantics
  20. 限制ip ssh远程登录

热门文章

  1. Ionicons的使用
  2. loadrunner测试结果分析
  3. 用友财务软件U8V10.1虚拟机 及培训视频
  4. Laravel分页
  5. Laravel的console使用方法
  6. 强化学习读书笔记 - 05 - 蒙特卡洛方法(Monte Carlo Methods)
  7. mfc--使用ShellExecute打开另一个可执行程序
  8. ASP从HTML标签中提取中文
  9. nodejs第二天之Buffer类
  10. MyFirstServlet学习笔记