SQL Server如何正确理解存储过程


SQL #sql server #存储过程2012-10-23 16:47
存储过程也称为存储查询,是存储在数据库中预先定义的SQL语句。它可以将常用的或很复杂的工作预先用SQL语句写好,并用一个值得的名称存储起来。使用时,只需要调用该存储过程就可以自动完成命令。现在的程序员在代码中都不直接使用SQL字符串,而是利用创建和使用存储过程来代替。这样做的好处如下。
1.                   存储过程只在创建时进行编译,以后执行存储过程时都不需要重新编译;而SQL语句每执行一次都要编译一次,所以使用存储过程可以提供数据库执行速度。
2.                   当对数据库进行复杂操作时,可以将这些复杂操作利用存储过程封装起来与数据库提供的事务处理结合在一起使用。
3.                   存储过程的安全性高,可以设定只有魔鬼用户才具有对其指定存储过程的使用权。
4.                   存储过程可以将所有SQL语句代码集中存放于服务器,避免将.net代码和冗长的SQL语句混在一起,从而使.NET代码更容易维护。
5.                   在存储过程中可以使用输出参数,允许返回记录集或其他值。
6.                   存储过程可以重复使用,大大减少了数据库开发人员的工作量。
存储过程几乎总是比相应的SQL语句执行速度快,可以使用Create Procedure语句来创建一个存储过程,基本语法如下:
   Create Proc[edure][拥有者]存储过程名][;程序编号]
     [(canshu #1,…参数#1024)
[with
{recompile|encryption|recomole,encryption}
]
       [for replication]
        As  程序行
其中,存储过程名不能超过128个自己。每个存储过程中最多设定1024个参数,参数的使用方法如下:
@参数名 数据类型 【varying】【=内定值】【outPut】
在每个参数名的前面要有一个“@”符号,每一个存储过程的参数均为程序内部使用,参数的类型除了Image外,其他SQL Server所支持的数据库都可以使用。
【=内定值】相当于在建立数据库时设定的一个自动的默认值,这里是为这个参数设定默认值。【output】是用来指导该参数是既有输入又有输出值的,也就是在调用了这个存储过程时,入果所指定的参数值是需要输入的参数,同事也一在结果中输出,则该项必须为output;如果只是作为输出参数,则可以用Curor,同事在使用该参数时,必须指定varying和output这两个语句。

相关文章

粤ICP备11097351号-1