我有以下程序上的SQL Server 2005值加空
ALTER proc [dbo].[p_shipavgAddOnUpdate]
as
begin
declare @addon decimal(20,2),@FloorPrice decimal(20,2)
update z
set
@addon = case when pp.mapprice>0
then 0
else
(BasePrice + Mktng) *.027
-- to allow for a higher sale price than the base price
end
,[email protected]
,@FloorPrice = (BasePrice + Mktng + @AddOn)
,@FloorPrice =
CASE WHEN @FloorPrice > COALESCE(pp.mapPrice, 0)
THEN @FloorPrice
ELSE .mapPrice
END
,FloorPrice = @FloorPrice
,FloorOffer = @FloorPrice + FinalShippCost
FROM zshipaverage z
inner join products p on z.sku = p.sku
inner join product_pricing pp on p.productid=pp.product
end
那麼PROC會從另一個PROC,它運行了一堆特效的所謂運行,即
exec proc1
exec proc2
... 。 等在一個PROC在此之前,一個
,該baseprice字段設置 在未來PROC,該Mktng字段設置 在這個親c中的插件,和floorprice正在運行我與記錄 作爲這樣結束後PROC設定 所以floorprice被假設是= baseprice + Mktng +附加組件 :
baseprice = 6.14
mktng = 2.13
addon = NULL
floorprice= 0.00
兩個問題; 1.-如果插件爲空,我怎麼能以0.00的floorprice結束? (nromal ANSI默認設置爲 值+ NULL = NULL)
I can't reproduce the effect
2:我是放心的是,在呼叫PROC的程序,以便在運行?
日Thnx
,我不認爲你應該在你的更新語句中使用來設置變量,然後他們的值來設置列值。操作順序是否定義了? –