存储过程之多表添加记录

     在接触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语句而已,其他的操作和之前单表查询都是一样的。




评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值