初学存储过程,主要对中间的变量,判断用处分得不是很清,劳驾哪位高人不兼麻烦,
能对以下部份进行详细解说?
1、以下两个过程,是做什么用途中,得到什么结果?
2、变量部份是什么意思?declare
3、判断起什么作用?bejing......end见笑!
create procedure InsertName
(
@username varchar(60),
@userPwd varchar(60),
@roleName varchar(20)
)
as
declare @RoleID decimal
begin
select @RoleID= RoleID from UserRole where roleName=@roleName
end begin
Insert into UserLogin(loginID,username,RoleID)
values(@username,@userPwd,@RoleID)
end create procedure InsertName
(
@username varchar(60),
@userPwd varchar(60),
@roleName varchar(20)
)
as
declare @RoleID decimal
begin
select RoleID from UserRole where roleName=@roleName set @RoleID=
end begin
Insert into UserLogin(loginID,username,RoleID)
values(@username,@userPwd,@RoleID)
end
能对以下部份进行详细解说?
1、以下两个过程,是做什么用途中,得到什么结果?
2、变量部份是什么意思?declare
3、判断起什么作用?bejing......end见笑!
create procedure InsertName
(
@username varchar(60),
@userPwd varchar(60),
@roleName varchar(20)
)
as
declare @RoleID decimal
begin
select @RoleID= RoleID from UserRole where roleName=@roleName
end begin
Insert into UserLogin(loginID,username,RoleID)
values(@username,@userPwd,@RoleID)
end create procedure InsertName
(
@username varchar(60),
@userPwd varchar(60),
@roleName varchar(20)
)
as
declare @RoleID decimal
begin
select RoleID from UserRole where roleName=@roleName set @RoleID=
end begin
Insert into UserLogin(loginID,username,RoleID)
values(@username,@userPwd,@RoleID)
end
--你的第二个是错的.create procedure InsertName
(
@username varchar(60),
@userPwd varchar(60),
@roleName varchar(20)
)
as
begin
declare @RoleID decimal --定义个变量变
select @RoleID= RoleID from UserRole where roleName=@roleName --把查出来的RoleID赋给变量@RoleID
Insert into UserLogin(loginID,username,RoleID) values(@username,@userPwd,@RoleID) --把查出来的roleid就是变量@roleid和其他两个传进来的变量插入表userlogin中
end
--你的第二个是错的.
create procedure InsertName
(
@username varchar(60),
@userPwd varchar(60),
@roleName varchar(20)
)
as
begin
declare @RoleID decimal --定义个变量变
select @RoleID= RoleID from UserRole where roleName=@roleName --把查出来的RoleID赋给变量@RoleID
Insert into UserLogin(loginID,username,RoleID) values(@username,@userPwd,@RoleID) --把查出来的roleid就是变量@roleid和其他两个传进来的变量插入表userlogin中
end
declare @RoleID decimal
declare @... 局部变量
declare @@...全局变量begin
select @RoleID= RoleID from UserRole where roleName=@roleName
//在UserRole表中查找roleName等于@roleName的项,把它的RoleID赋给变量@RoleID
end
begin...end 执行其中一组语句
begin
Insert into UserLogin(loginID,username,RoleID)
values(@username,@userPwd,@RoleID)
//在UserLogin表中的loginID,username,RoleID三个字段分别插入@username,@userPwd,@RoleID的值
end
declare @RoleID decimal
declare @... 局部变量
declare @@...全局变量begin
select @RoleID= RoleID from UserRole where roleName=@roleName
//在UserRole表中查找roleName等于@roleName的项,把它的RoleID赋给变量@RoleID
end
begin...end 执行其中一组语句
begin
Insert into UserLogin(loginID,username,RoleID)
values(@username,@userPwd,@RoleID)
//在UserLogin表中的loginID,username,RoleID三个字段分别插入@username,@userPwd,@RoleID的值
end
create procedure InsertName
(
@username varchar(60),
@userPwd varchar(60),
@roleName varchar(20)
)
as
declare @RoleID decimal
begin
select @RoleID= RoleID from UserRole where roleName=@roleName
end begin
Insert into UserLogin(loginID,username,RoleID)
values(@username,@userPwd,@RoleID)
end 运行出错消息 207,级别 16,状态 1,过程 InsertName,第 10 行
列名 'RoleID' 无效。
以下是两个表(我自己根据上面的存储过程创建的表):userlogin表loginid username roleIDuserrole表userid username userpwd rolename
列名 'RoleID' 无效,原本就无此列
select @RoleID= RoleID from UserRole where roleName=@roleName
你这句话却要从这个表里查出这个字段,肯定会错的……
declare 声明变量的
begin......end 是代码块