【发布时间】:2014-06-14 19:06:31
【问题描述】:
我创建了一个带有存储过程的表,并尝试将数据插入其中,但出现此错误
消息 137,第 15 级,状态 2,第 49 行
必须声明标量变量“@EmployeeID”)
请帮忙!
Create Table Humanresource.Employee
(
EmployeeID char(3) constraint pkemployeeid primary key,
FirstName varchar(20) not null,
LastName varchar(20) not null,
Emp_Address varchar(30) not null,
Title char(30) constraint ckTitle check(Title in ('Executive','Senior Executive','Management Trainee','Event Manager','Senior Event Manager')),
Phone varchar(20) check(Phone like '[0-9][0-9]-[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9][0-9]')
)
存储过程:
create procedure Auto_EmpID
@FirstName varchar(20),
@LastName varchar(20),
@Address varchar(30),
@Title varchar(30),
@Phone varchar(20)
AS
Declare @EmployeeID char(3)
if exists (select EmployeeID From HumanResource.Employee Where EmployeeID = 'E101')
BEGIN
Select
@EmployeeID = Max(right(EmployeeID, 2))
from HumanResource.Employee
Select
@EmployeeID = CASE
When @EmployeeID >= 0 AND @Employeeid < 9
Then 'E0' + convert(char(3), @EmployeeID + 1)
When @EmployeeID >= 9 AND @EmployeeID < 99
Then 'E' + convert(char(3), @EmployeeID + 1)
END
END
Else
set @Employeeid = 'E101'
insert into HumanResource.Employee
Values(@EmployeeID, @FirstName, @LastName, @Address, @Title, @Phone)
Return
Exec Auto_EmpID 'Bamidele','Ajose','Lagos','11-1111-111-111'
exec Auto_Empid 'Kunle','Awele','Ikeja','22-3332-655-897'
exec auto_empid 'John','George','Benin','33-5555-7654-443'
select * from humanresource.employee
insert into humanresource.employee(@EmployeeID, @FirstName, @LastName, @Address, @Title, @Phone)
values(@EmployeeID = 'e101', 'Baley', 'Carles', 'Los Angeles', '23-3445-434-344')
【问题讨论】:
标签: sql-server stored-procedures