Tsql 触发时使用case

Tsql 触发时使用case,tsql,Tsql,我有一个简单的问题,但我不知道我做错了什么以及如何解决它。我在桌子上写了一个触发器。你能给我一些建议吗 alter trigger PriceEU on pojazdyEN after update,insert as begin declare @value nvarchar(50) set @value = (select i.Currency from inserted i inner join Cars s on i.ID = s.ID) case @value when 'EURO'

我有一个简单的问题,但我不知道我做错了什么以及如何解决它。我在桌子上写了一个触发器。你能给我一些建议吗

alter trigger PriceEU on pojazdyEN
after update,insert
as
begin
declare @value nvarchar(50)
set @value = (select i.Currency from inserted i inner join Cars s on i.ID = s.ID)
case @value 
when 'EURO' then update Cars set PriceEuro =Price
when 'DOLLARS' then update Cars set PriceEuro = (Price*1.2)
else update Cars set PriceEuro = (Price*0.5)

end

您应该使
CASE
表达式成为更新的谓词:

UPDATE Cars
SET PriceEuro = CASE @Value WHEN 'EURO' THEN Price
                            WHEN 'DOLLARS' THEN Price*1.2
                            ELSE Price*0.5 END

CASE表达式不能用于控制Transact-SQL语句、语句块、用户定义函数和存储过程的执行流。有关流方法控制的列表,请参阅流语言控制(Transact-SQL)