存储过程中的条件

时间:2013-03-01 19:46:57

标签: sql sql-server-2008 stored-procedures

我有一个存储过程可以执行2次更新,但我只想在参数@active等于'Y'时进行第一次更新。

alter procedure sp_updateThis
@something varchar(5),
@active char(1)
as begin
-- check to see if active and do the update
update myTable set this=@something

-- run this one regardless
update yourTable set that=@something

4 个答案:

答案 0 :(得分:4)

尝试使用此更改最后一行:

if (@active = 'Y')
begin
    update yourTable set that=@something
end

答案 1 :(得分:2)

alter procedure sp_updateThis
@something varchar(5),
@active char(1)
as begin
-- check to see if active and do the update
if(@active = 'Y')
Begin
update myTable set this=@something
End

-- run this one regardless
update yourTable set that=@something

答案 2 :(得分:1)

如果你真的想要更新表格中的每一行:

update myTable set this=@something where @active = 'Y';

否则你可能还想要其他条款......

答案 3 :(得分:0)

你可以创建一个这样的程序: 创建过程sp_updateThis @something varchar(5), @active char(1) 如  开始

如果@active ='y'  开始  更新yourTable设置= @ something  结束  其他  更新myTable设置this = @ something   更新yourTable设置= @ something

端   去