使用存储过程更新数据库中的现有值

时间:2018-12-06 12:25:10

标签: sql sql-server

我要更新我的表contentment,该表具有以下属性:

  

雇员编号,问题编号,日期,得分,评论

粗体字是此表的primary key。我的stored procedure需要updatequestionid才能获得employeeid。仅questionid需要更改。 employeeiddatescorecomment必须保持相同。

我有以下内容:

create procedure [dbo].[spUpdateContentment]
(   
@employeeid int,
@questionid int,
@date date            
)
as    
begin

     update contentment
     set questionid= @questionid
     where employeeid= @employeeid and questionid= @questionid and date = @date
else 
    RAISERROR(@ErrMsg,16,1)
end

但是这不起作用,它什么也没做。我认为这是因为我的存储过程并不完全知道他需要在哪里更新它,以及他需要更新哪个Questionid。但是我不确定。我使用SQL Server

2 个答案:

答案 0 :(得分:1)

我想你想要

 update contentment
     set questionid = @questionid
     where employeeid = @employeeid and date = @date;

条件and questionid = @questionid将阻止找到该行。如果找到,则update不会更改任何值。

逻辑可能需要两个@questionid,一个用于旧值,一个用于新值。

答案 1 :(得分:1)

您没有更改任何值,因此不执行任何操作。您可能需要以下条件:

GetPtr()