大家看看我这样写为什么老师报错??
create proc shenheliuc
--记录每一步审核时间
@decl int, --当前第几步
@id int, --修改哪一条记录
@Flag int --记录的值
as
case @decl
when 1 then Update ph_company_inbox set firtime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 2 then Update ph_company_inbox set sectime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 3 then Update ph_company_inbox set thirdtime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 4 then Update ph_company_inbox set fortime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 5 then Update ph_company_inbox set fiftime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 6 then Update ph_company_inbox set sixtime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 7 then Update ph_company_inbox set servtime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 8 then Update ph_company_inbox set eithtime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 9 then Update ph_company_inbox set ninetime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 10 then Update ph_company_inbox set tentime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 11 then Update ph_company_inbox set elevtime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 12 then Update ph_company_inbox set tlewtime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 13 then Update ph_company_inbox set thirtime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 14 then Update ph_company_inbox set forten=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 15 then Update ph_company_inbox set fifteen=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
end
return
create proc shenheliuc
--记录每一步审核时间
@decl int, --当前第几步
@id int, --修改哪一条记录
@Flag int --记录的值
as
case @decl
when 1 then Update ph_company_inbox set firtime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 2 then Update ph_company_inbox set sectime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 3 then Update ph_company_inbox set thirdtime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 4 then Update ph_company_inbox set fortime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 5 then Update ph_company_inbox set fiftime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 6 then Update ph_company_inbox set sixtime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 7 then Update ph_company_inbox set servtime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 8 then Update ph_company_inbox set eithtime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 9 then Update ph_company_inbox set ninetime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 10 then Update ph_company_inbox set tentime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 11 then Update ph_company_inbox set elevtime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 12 then Update ph_company_inbox set tlewtime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 13 then Update ph_company_inbox set thirtime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 14 then Update ph_company_inbox set forten=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
when 15 then Update ph_company_inbox set fifteen=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
end
return
case when不是这样用的你这种得用 if else ..
--记录每一步审核时间
@decl int, --当前第几步
@id int, --修改哪一条记录
@Flag int, --记录的值
@dt datetime
as
update ph_company_inbox set firtime = @dt where fields2=@Flag,fields1=@Flag where Ncid=@id and @decl(这个变量怎么搞?)
go
--记录每一步审核时间
@decl int, --当前第几步
@id int, --修改哪一条记录
@Flag int --记录的值
as
begin
if @decl=1
Update ph_company_inbox set firtime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
else if @decl=2
Update ph_company_inbox set sectime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
else if @decl=3
Update ph_company_inbox set thirdtime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
else if @decl=4
Update ph_company_inbox set fortime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
else if @decl=5
Update ph_company_inbox set fiftime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
else if @decl=6
Update ph_company_inbox set sixtime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
else if @decl=7
Update ph_company_inbox set servtime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
else if @decl=8
Update ph_company_inbox set eithtime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
else if @decl=9
Update ph_company_inbox set ninetime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
else if @decl= 10
Update ph_company_inbox set tentime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
else if @decl= 11
Update ph_company_inbox set elevtime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
else if @decl= 12
Update ph_company_inbox set tlewtime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
else if @decl= 13
Update ph_company_inbox set thirtime=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
else if @decl= 14
Update ph_company_inbox set forten=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
else if @decl= 15
Update ph_company_inbox set fifteen=getdate(),fields2=@Flag,fields1=@Flag where Ncid=@id
end
GO
create proc shenheliuc
--记录每一步审核时间
@decl int, --当前第几步
@id int, --修改哪一条记录
@Flag int --记录的值
在这个存储过程中,我根据传入的@decl 的值来执行不同的更新语句,我不想用If else语句,用Case when then语句该怎么写呢