永发信息网

SQL存储过程实现报名 打分

答案:1  悬赏:30  手机版
解决时间 2021-05-02 12:29

一个数据表uname为

id  name  IDX

1   a     123

2   b     124

3   c     520

4   d     458

5   e     645

……

另一个表match为

id  name  IDX   mark

1    e    645   85.6

2    b    124   89.5

……

表uname为总共有这么多用户,match为uname里面的用户报名参加之后进行存储的数据表,其中列mark为评委打分的,IDX类似与QQ号,唯一的。

先要利用存储过程实现报名和打分,且不能重复报名。

这个要如何实现

我在ASP.NET页面实现的报名SQL语句

insert  match  (IDX,username) select IDX,name from uname where IDX='" + txtIDX.Text + "'and not exists(select * from match where IDX='" + txtIDX.Text + "')

打分SQL语句

UPDATE match SET mark='" + tbscore.Text + "' WHERe IDX=" + tbIDX.Text

最佳答案

Create Procedure proc_math_insert(@ID int output,@IDX int,@mark float)  --创建存储过程,Proc_math_insert @ID为输出变量及返回插入后返回的ID,IDX输入变量 @mark为输入变量


as


Declare @count As int   --定义统计变量


Declare @Err As int  --定义错误变量


Declare @name as nvarchar(50)  --定义名称变量


set @Err=0  --设置错误变量为0及没有错误


Begin Tran  --事件开始


Select @Count =Count(IDX) From Match where IDX=@IDX  --查找传入的IDX在表match是否己经存在


IF @Count <=0  --如果不存在


   Begin


    Select @name=[name] From Uname where IDX=@IDX  --查找IDX是否在Uname表中存在


    If @name=null --如果不存在则出错,跳转至结束
    Begin


    set @Err=1
    goto  theEnd


    End
    Else   --否则插入记录
 Begin


    Insert Match(IDX,Name,Mark) values(@IDX,@Name,@Mark)


    End


    
End
Else  --如果IDX在表match中己经存在则更新mark的值
    Begin
    update match set mark=@mark where IDx=@IDX
    End



theEnd:  --结束标签,如果出现错误跳转至此,如果正常也会执行到此处
IF @Err=0  --如果没有错误
Begin 
Commit Tran  --提交事件
SET @ID = @@IDENTITY  --设置输出值为自动产生的ID值,在数据库我将ID设置为自动增量
End
Else    --否则
Begin 
    Rollback Tran  --回滚事件不执行所有语句
SET @ID = 0  --返回错误ID值为0


End


在查询分析器中调用方法


declare @ID as int --定义输出变量
exec proc_math_insert @ID output,123,888.5  --调用存储过程并且将返回值保存到@ID中
print @ID  --输入@ID的值

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
黑龙茶我想知道这个在什么地方
天津对北京的中超联赛什么时候踢?
求极品飞车8过弯/漂移技巧
旋舞还能点亮吗
哎、、、最近很倒霉哪地算命好呀、、、
QQ炫舞的舞团怎么升级呀?
用王者组一句话,用难道造句,用怎么能够造句
谁给介绍几首歌
烦 烦烦烦 我真的好烦
为什么在QQ信箱写信无法显示天然码输入法?其
怪怪儿童摄影地址在哪,我要去那里办事
谁知道免费的阅读pdg格式的阅读器??
我QQ一打开那个绿色树叶头像的Q群QQ就会出现
初中物理怎么能学好??
佰草集和春纪哪个好用,佰草集化妆水怎么样?
推荐资讯
描写夜景的作文大概800字的样子,是现在的季节
怎样关闭的移动梦网 __ 手机
认识字体的进来看下
南宁电子厂在哪里
粉煤灰是什么东西,建筑中粉煤灰掺合料的基本
大家帮帮忙解释一个问题 谢谢
诺基亚C6有几种版本
数学题目。求解!急。
QQ家园里面1万G币大概相当于价值多少的人民币
发航空件要提前几个小时到机场?
看到V迷的态度、我更看不惯许狗!
战地之王什么时候能耍?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?