一、自定义函数:
  1. 可以返回表变量 
  2. 限制颇多,包括 
    不能使用output参数; 
    不能用临时表; 
    函数内部的操作不能影响到外部环境; 
    不能通过select返回结果集; 
    不能update,delete,数据库表; 
  3. 必须return 一个标量值或表变量 
  自定义函数一般用在复用度高,功能简单单一,争对性强的地方。 
二、存储过程
  1. 不能返回表变量 
  2. 限制少,可以执行对数据库表的操作,可以返回数据集 
  3. 可以return一个标量值,也可以省略return 
   存储过程一般用在实现复杂的功能,数据操纵方面。 
 
========================================================================= 
SqlServer存储过程--实例 
实例1:只返回单一记录集的存储过程。 
  表银行存款表(bankMoney)的内容如下 
 
Id 
userID 
Sex 
Money 
001 
Zhangsan 
男 
30 
002 
Wangwu 
男 
50 
003 
Zhangsan 
男 
40 
 
要求1:查询表bankMoney的内容的存储过程 
注* 在使用过程中只需要把T-Sql中的SQL语句替换为存储过程名,就可以了很方便吧! 
实例2(向存储过程中传递参数): 
加入一笔记录到表bankMoney,并查询此表中userID= Zhangsan的所有存款的总金额。 
在这里再啰嗦一下存储过程的3种传回值(方便正在看这个例子的朋友不用再去查看语法内容): 
1.以Return传回整数 
2.以output格式传回参数 
3.Recordset 
传回值的区别: 
output和return都可在批次程式中用变量接收,而recordset则传回到执行批次的客户端中。 
实例3:使用带有复杂 SELECT 语句的简单过程 
  下面的存储过程从四个表的联接中返回所有作者(提供了姓名)、出版的书籍以及出版社。该存储过程不使用任何参数。 
 
实例4:使用带有参数的简单过程 
实例5:使用带有通配符参数的简单过程 
实例6:if...else 
存储过程,其中@case作为执行update的选择依据,用if...else实现执行时根据传入的参数执行不同的修改. 
                        (编辑:莱芜站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                         |