我有一张有1行的表 表1
____________________________________________
id_employee | month| year| score| nbr_month|
____________________________________________
14 | 2 |2015 | 15 | 4 |
____________________________________________
我希望更新此行 所以我创建了我的存储过程
update table 1
set score=10,nbr_month=4
where id_employee=14 and month=2 and year=2015
但执行存储过程的结果会生成另一行
____________________________________________
id_employee | month| year| score| nbr_month|
____________________________________________
14 | 2 |2015 | 15 | 4 |
14 | 2 |2015 | 10 | 4 |
____________________________________________
那么问题出在哪里? 提前谢谢。
存储过程是:
ALTER proc [dbo].[update_score]
@id_employee int,
@score int,
@nbr_month int,
@month int,
@year int
as
begin
update table1
set score = @score
,nbr_month = @nbr_month
where id_employee = id_employee
and [month] = @month
and [year] = @year
end
答案 0 :(得分:1)
这是不可能的。更新修改已存在的记录。因此,您的代码可能正在运行insert
命令。或者调用执行相同操作的存储过程。或者触发trigger
。但当然,update
不会生成新记录。
答案 1 :(得分:0)
可能会有更新触发器写在table.thats上唯一的方法,否则它不能。