1.存储过程的优点:

    (1)存储过程可以用作安全层(security layer)。通过授予对存储过程的执行权限而不是授予对基对象的执行权限,你可以控制对象的访问。你可以在存储过程中执行输入验证,通过使用存储过程,你可以允许那些只有作为一个整体执行才会有意义的操作,而不是允许用户直接操作对象。

(2)你也可以利用存储过程实现封装(encapsulation),创建了存储过程之后,如果你找到一种更高效的方法完成某项任务,只需执行ALTER PROCEDURE语句修改存储过程的实现即可。只要存储过程的接口不变,用户和应用程序就不会受到影响。但是如果你在客户端实现业务逻辑,要修改该逻辑将非常痛苦。

(3)存储过程在性能方面也极具优势。默认情况下,存储过程将重用已缓存的执行计划,节省了分析、解析和优化代码所需的CPU资源和时间。---起到优化数据库的作用

2。存储过程的分类:

SQL Server2005支持不同类型的存储过程:用户定义存储过程(UDF)系统存储过程扩展存储过程

3.不好的习惯

a。使用SELECT *不是一个好习惯。该表的架构可能发生变化,这种变化会导致你的应用程序崩溃。此外,如果你确实只需要表中的部分列而不是所有列,使用SELECT*会阻止优化器利用定义在该子集上的索引。

b。Microsoft强烈建议不要使用sp_前缀创建你自己的存储过程。SQL Server使用该前缀标识系统存储过程。在这一节,我将使用sp_前缀创建存储过程以演示它们的特殊行为。

特殊存储过程(使用sp_前缀,在master中创建)也被标记为系统存储过程,并具备另外一些独特的行为。当SQL Server的安装程序运行安装脚本以创建系统存储过程时,安装脚本使用未公开的存储过程sp_MS_marksystemobject把这些存储过程标记为系统存储过程。

4.通过在名称前面增加一个或两个井号(#或##)可以创建临时存储过程。使用一个井号表示该存储过程是一个局部临时存储过程,两个井号表示全局临时存储过程。局部临时存储过程和全局临时存储过程在可见性

5.SQL SERVER中一个单引号要转成3个单引号

如想输入一个单引号,则可以用select '''a'''

输出一个双引号要6个单引号select ''''''+'a'+''''''

 

Posted on 2008-11-06 18:10  sunlibo  阅读(158)  评论(0)    收藏  举报