标量函数降低效率实现表值函数的功效

Posted on 2013-10-09 19:20  千岛湖  阅读(236)  评论(0)    收藏  举报

1、标量函数:NumericReplaceXX(b.AlarmDesc, [Message])

 

2、执行以下语句报错,在此应该使用表值函数

update Csc050.cscstd20.dbo.d_activealarm set AlarmLevel = b.AlarmCodeLevel, AlarmDesc = .dbo.NumericReplaceXX(b.AlarmDesc, [Message]) 
  ,AlarmClass = b.AlarmClass, AlarmLogicClass = b.AlarmLogicClass, AlarmDeviceEffect = b.AlarmDeviceEffect, AlarmBuinessEffect = b.AlarmBuinessEffect
     from Csc050.cscstd20.dbo.d_activealarm a inner join Csc050.cscstd20.dbo.E_告警分类表 b
   on a.AlarmCode = b.ConId

3、修改为case when 语句 实现功能

update Csc050.cscstd20.dbo.d_activealarm set AlarmLevel = b.AlarmCodeLevel, AlarmDesc = case when a.AlarmDesc is not null or a.AlarmDesc is null then .dbo.NumericReplaceXX(b.AlarmDesc, [Message]) else a.AlarmDesc  end
  ,AlarmClass = b.AlarmClass, AlarmLogicClass = b.AlarmLogicClass, AlarmDeviceEffect = b.AlarmDeviceEffect, AlarmBuinessEffect = b.AlarmBuinessEffect
     from Csc050.cscstd20.dbo.d_activealarm a inner join Csc050.cscstd20.dbo.E_告警分类表 b
   on a.AlarmCode = b.ConId

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3