注册 登录
编程论坛 SQL Server论坛

[求助]SQL存储过程

guochuangsmn 发布于 2007-08-24 21:48, 2572 次点击
谁能帮我写个存储过程 谢谢 
建立名为InsertUserInfo的存储过程,插入数据到UserInfo表 存储过程要求实现验证表中是否已经存在要插入的昵称(注册的用户名不能重复)如果重复,用raiserror函数抛出错误.
建立名为SelectUserInfo的存储过程,获取表UserInfo的数据 表的内容请高手门自己写个


各位来访问的高手  请帮我完成这个 好吗 小弟谢谢拉; 感激万分



给我写的同时大家一起进步哦    麻烦大家拉 
20 回复
#2
sky_yang_sky2007-08-25 15:34

誰來幫我工作,工資我來幫你拿。。。。

#3
缘吇弹2007-08-25 15:48

哈哈,楼上有个性

#4
guochuangsmn2007-08-25 23:15
  谁帮我 写点这个东西啊  楼上的两位..........  哭了
#5
guochuangsmn2007-08-28 22:51
真不知道是我写的你门不明白还是你门能力有限啊  不好意思  真的是急于想把这个东西写出来
#6
purana2007-08-28 22:55

急切想知道就急切去学呗.

#7
卡卡艾2007-08-28 23:30
我帮你写个吧:(我就写了两个字段,你自己根据自己的情况改动下)
create procedure InsertUserInfo
(@userId varchar(4),@userName varchar(50),@result integer output)
as
begin
if exists(select * from UserInfo where userName = @userName)
begin
set @result = -1;//判断是否已经存在要插入的昵称
end
begin
if exists(select * from UserInfo where userId=@userId)
--判断在UserInfo表中是否已经存在此次插入的信息;
begin
set @result = 0;
end
else
begin
begin transaction tran_InsertUserInfo;
insert into UserInfo values(@userId,@userName);--插入到表
commit transaction tran_InsertUserInfo;
set @result = 1;
end
end
end
go
#8
卡卡艾2007-08-28 23:33
查询就好办了,
改成select语句就可以了.
select * from UserInfo;这个你总会吧.呵呵
找本书看吧..革命尚未成功,同志仍需努力-----+++
#9
guochuangsmn2007-08-29 21:08
谢谢专家拉  
#10
guochuangsmn2007-08-29 21:10
革命尚未成功,同志仍需努力-----  呵呵我喜欢这句话
#11
卡卡艾2007-08-29 22:58
以下是引用guochuangsmn在2007-8-29 21:08:40的发言:
谢谢专家拉

不敢当,不敢当...
我也只在学习中...

#12
guochuangsmn2007-08-30 01:18

高手 你Q多少啊 能加我吗 大家一起进步 我还可以向你请教呢

#13
风流上进2007-09-15 15:58
周末休息了

#14
guochuangsmn2007-09-16 02:33
全年不休。。。。。。
#15
豆芽的天空2007-09-19 22:13
#16
guochuangsmn2007-09-20 10:31
你吐什么
#17
gugu07922007-09-20 10:58
   有问题才会有进步,但是问题要自己解决,进步会更大!!
#18
guochuangsmn2007-09-22 21:59
呵呵说的是不错   好象有在埋汰我的意思昂
#19
胡桂生2007-09-26 23:20
同意7楼的,下面的也可以:
create table UserInfo
(
UserID int primary key,
UserName char(20) unique,
)
insert into UserInfo (UserID,UserName) values (1,'aa')
insert into UserInfo (UserID,UserName) values (2,'bb')

-------------建立名为InsertUserInfo的存储过程
create procedure InsertUserInfo (@UserID int, @UserName char(20))
as
declare @count int
begin transaction
set @count = 0
select @count = count(*) from UserInfo where UserID = @UserID --用来统计表中要插入数据的数量
if @count > 0 --表示表中含有相同的数据
begin --判断ID重复否
raiserror ('含有该用户ID的用户已存在',16,1)
rollback; --回滚
end
else
begin
select @count = count(*) from UserInfo where UserName = @UserName
if @count > 0
begin --判断用户名重复否
raiserror ('含有该用户名的用户已存在',16,1)
rollback;
end
else --既不存在相同的ID,也不存在相同的用户名,执行插入操作
insert into UserInfo (UserID,UserName) values (@UserID, @UserName)
if @@error <> 0
rollback;
end
select * from UserInfo
commit transaction
---------------建立名为SelectUserInfo的存储过程
create procedure SelectUserInfo
as
begin transaction
select * from UserInfo
if @@error <> 0
rollback;
commit transaction
版本来已经排好,但是一粘贴就乱了。
#20
胡桂生2007-09-26 23:24
加油吧山东人,努力吧所有的人。
#21
guochuangsmn2007-10-06 09:26
大家一起努力  只要有决心 没什么事是做不到的
1