这是我在SQL Server2005中写的存储过程:
ALTER proc [dbo].[proc_addDept]
@deptName varchar(50), @deptStatus int , @employeeId varchar(20),@deptId int output
as
insert into departments values(@deptName,@deptStatus,@employeeId)
set @deptId = @@identity
print('shifouok');
print(@deptId)
update employees set dept_id = @deptId where employee_id = @employeeId
print('ok')
这是我的调用:
declare @deptId int
execute proc_addDept '11',1,'E20120110117001',@deptId output
print(@deptId)
但是输出结果是:
(1 行受影响)
shifouok
55
(0 行受影响)
ok
55
为什么 update employees set dept_id = @deptId where employee_id = @employeeId 没有执行呢
employees 中有 emplotee_id 的记录吗? (0 行受影响)不是说没执行,按照字面意思理解,要么employees 中没有这个employee_id, 要么(如果有触发器)触发器回滚了。
谢谢,我自己解决了
是我自己的字符串拼错了