您的位置:首页 > 其它

存储过程之多表添加记录

2015-05-03 21:28 183 查看
在接触MIS类型的项目,无可避免的要和数据库打交道,相信大家对于单个表的操作已经不陌生了(掌握好基本的SQL语句就行)。但是随着项目的优化和规范,原本的表中的字段可能要随着范式的进行而分割实体的属性,这样原本一张表就可以满足的功能,现在可能需要多张表同时操作才能进行。今天和大家分享下如何使用数据库自带的存储过程实现同时对多张表的添加记录功能。

存储过程:一组为了完成特定功能的SQL 语句集。创建名为Pro_studentQuery语句集(具体的优缺点和其他功能可以上网百度)。
原 理:传统的单表查询需要用到SQL语句。

例如对表T_Working查询UserName的记录:

Dim
sql As String=
"Select * From T_WorkLog WhereUserName=@UserName"


调用存储过程就相当于:

Dim sql
As String=
"Pro_studentQuery”

其中Pro_studentQuery为创建的SQL语句集名称。
方法:使用数据库自带的存储功能实现多表同时操作的功能。

创建存储过程:【打开SQL SERVER】【选择数据库】【可编程性】【存储过程】右击【新建存储过程】

进入如下界面:






例如要向T_Student、T_Card、T_Recharge三个表中插入相应的字段值,这事需要对相应的字段传入参数。

<span style="font-family:Microsoft YaHei;font-size:18px;"><strong>CREATE PROCEDURE Pro_studentQuery
	
@StudentName char(10),
@StudentNo numeric(10,3),
@Sex char(10),
@Department char(10),
@Grade char(10),
@Class numeric(10,3),
@CardNo numeric(10,3),
@Cash numeric(10,3),
@Explain char(10),
@Head char(10),
@Status char(10),
@IsCheck char(10),
@DateT date,
@Time time,
@Type char(10),
@AddMoney numeric(10,3)

AS

BEGIN
	</strong></span>
<span style="font-family:Microsoft YaHei;font-size:18px;"><strong>	SET NOCOUNT ON;
    ----下面是插入记录的语句,也可以写查询、删除等。
    
    insert into T_Studnet (StudentName,StudentNo,Sex ,Department ,Grade ,Class ,CardNo  )values(@StudentName,@StudentNo,@Sex,@Department,@Grade,@Class,@CardNo )</strong></span>
<span style="font-family:Microsoft YaHei;font-size:18px;"><strong>
    insert into T_Card (CardNo ,Cash,Explain,Head,Status,IsCheck,DateT,Time,Type)values(@CardNo,@Cash,@Explain,@Head,@Status,@IsCheck,@DateT,@Time,@Type)</strong></span>
<span style="font-family:Microsoft YaHei;font-size:18px;"><strong>
    insert into T_ReCharge (StudentName,CardNo,AddMoney,Cash,StautsT ,Head,DateT ,Time)values(@StudentName,@CardNo,@AddMoney,@Cash,@Status,@Head,@DateT,@Time)</strong></span>
<span style="font-family:Microsoft YaHei;font-size:18px;"><strong>
END
GO</strong></span>


定义完后,在数据库中执行以下就可以调用了。

项目实现:在U层定义实体,赋值好参数,最终在D层调用存储过程,传入参数。

感受:个人觉得存储过程就是从各个表中抽出需要操作的字段,组合成一个虚拟的表。对于一些功能需要的数值只要给出参数就可以查询和操作了。变的只是SQL语句而已,其他的操作和之前单表查询都是一样的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: