我需要修改一个存储过程,它将更新实时数据库的价格表。 我使用的是MS SQL Server 2005,存储过程用作SAP BI中的查询。
我有这个部分:
SET @cmd ='Update PriceList 5'
SET @sql ='UPDATE a SET a.price= round( (b.price*0.9),0), a.currency=b.currency FROM ['+@trgDB+'].[dbo].[ITM1] a '
SET @sql =@sql+' INNER JOIN ['+@trgDB+'].[dbo].[ITM1] b ON ( a.ItemCode=b.itemcode AND b.PriceList=1) '
SET @sql =@sql+' WHERE a.PriceList=5 '
IF @filter IS NOT NULL BEGIN
SET @sql =@sql+' AND a.[ItemCode] LIKE '+char(39)+@filter+'%'+char(39)+' '
SET @cmd = @cmd+' ('+@filter+'%'+') '
END
这将根据过滤器更新每个项目的价格。 我需要保留一些项目不变,那么如何在上面的代码中添加NOT LIKE'VSK%'和NOT LIKE'VFH%'?如果丢弃了flter并不重要,但是我需要更新每个价格,除非不喜欢'VSK%'并且不喜欢'VFH%'。