积极答复者
sql存储过程……

问题
-
select*from dbo.登录表
select*from dbo.用户信息表
我想调用存储过程一次创建n个学号,然后插入两个表中。参数为默认密码,班级编号和n。学号的格式为如:0920090211,中间做字符串截取.下面是我写的,怎么不能达到效果……
create procedure proAddStuInfo @txtPassWord varchar(50),@txtClassID int,@n int
as
declare @txtUserName varchar(50)
begin try
begin tran t
while @n>0
if(@n<9)
set @n='0'+@n
begin
set @txtUserName=substring(convert(varchar(100),getdate(),112),2,2)+year(getdate())+@txtClassID+@n
insert 登录表(用户名,密码,角色编号) values ('@txtUserName','@txtPassWord',3)
insert 用户信息表(用户名,角色编号)values('@txtUserName',3)
set @n=@n-1
end
commit tran t
end trybegin catch
rollback tran t
end catchdrop procedure proAddStuInfo
execute proAddStuInfo @txtPassWord='123',@txtClassID=1,@n=10
答案
-
在图书馆搞了一个小时,终于把它搞出来了…… 学号的格式也正确.如:0920090211
前面的问题处在主学号的字符串连接……
select*from dbo.登录信息表
select*from dbo.用户信息表delete 登录信息表 where 角色编号=3
delete 用户信息表 where 角色编号=3create procedure proAddStuInfo @txtPassWord varchar(50),@txtClassID varchar(2),@n int
as
declare @txtUserName varchar(50)
declare @ClassID varchar(4)
if(@txtClassID<=9)
set @ClassID ='0'+@txtClassID
else
set @ClassID =@txtClassID
begin trybegin transaction
while(@n>0)
begin
if(@n<=9)
set @txtUserName=substring(convert(varchar(100),getdate(),112),3,2)+convert(varchar(4),year(getdate()))+@ClassID+'0'+convert(varchar(4),@n)
else
set @txtUserName=substring(convert(varchar(100),getdate(),112),3,2)+convert(varchar(4),year(getdate()))+@ClassID+convert(varchar(4),@n)
insert dbo.登录信息表(用户账号,用户密码,角色编号) values (@txtUserName,@txtPassWord,3)
insert dbo.用户信息表(用户账号,角色编号)values(@txtUserName,3)
set @n=@n-1
end
commit transaction
end trybegin catch
rollback transaction
end catch
drop procedure proAddStuInfo
execute proAddStuInfo @txtPassWord='123',@txtClassID='12',@n=14
全部回复
-
在图书馆搞了一个小时,终于把它搞出来了…… 学号的格式也正确.如:0920090211
前面的问题处在主学号的字符串连接……
select*from dbo.登录信息表
select*from dbo.用户信息表delete 登录信息表 where 角色编号=3
delete 用户信息表 where 角色编号=3create procedure proAddStuInfo @txtPassWord varchar(50),@txtClassID varchar(2),@n int
as
declare @txtUserName varchar(50)
declare @ClassID varchar(4)
if(@txtClassID<=9)
set @ClassID ='0'+@txtClassID
else
set @ClassID =@txtClassID
begin trybegin transaction
while(@n>0)
begin
if(@n<=9)
set @txtUserName=substring(convert(varchar(100),getdate(),112),3,2)+convert(varchar(4),year(getdate()))+@ClassID+'0'+convert(varchar(4),@n)
else
set @txtUserName=substring(convert(varchar(100),getdate(),112),3,2)+convert(varchar(4),year(getdate()))+@ClassID+convert(varchar(4),@n)
insert dbo.登录信息表(用户账号,用户密码,角色编号) values (@txtUserName,@txtPassWord,3)
insert dbo.用户信息表(用户账号,角色编号)values(@txtUserName,3)
set @n=@n-1
end
commit transaction
end trybegin catch
rollback transaction
end catch
drop procedure proAddStuInfo
execute proAddStuInfo @txtPassWord='123',@txtClassID='12',@n=14