我正在編寫一個存儲過程來更新事務表。SQL Server 2005存儲過程
我會在一個時間(發貨,收貨或處置)
來更新一個交易類型如果我更新發貨,我將傳遞一個值,並保留其他兩個空白。
如何編寫一個存儲過程,以便當我傳入的值不是NULL(或0,無論哪個更容易)時只更新該字段,並保留其他人原樣?
這裏是我現在所在:
CREATE PROCEDURE [dbo].[sp_UpdateTransaction]
-- Add the parameters for the stored procedure here
@ID int,
@disposalID int,
@shipID int,
@recID int,
as
begin
update tblX
set
disposalID = COALESCE(@disposalID, disposalID)
receiptID = COALESCE(@recID, receiptID)
shipmentID = COALESCE(@shipID,shipmentID)
where ID = @sID
END
COALESCE
似乎並沒有工作,因爲我不斷收到錯誤,有另一種功能,我可以用它來做到這一點?
我越來越:
附近有語法錯誤receiptID「。
我不明白爲什麼:(
謝謝!
**什麼數據庫系統,什麼版本?**存儲的特效不是廠商之間移植,並沒有足夠的SQL標準小組委員會,以規範有意義的「一般」答案,適用於每個數據庫系統..... – 2011-03-10 16:20:41
我使用SQL 2005 – 2011-03-10 16:23:51
不,您正在使用** Microsoft ** SQL ** Server ** 2005. [SQL](http:/ /en.wikipedia.org/wiki/SQL)是一種標準語言,由MS SQL Server,Oracle DBMS,IBM DB2,MySQL,PostgreSQL,Interbase實現......因此,您應該僅將此標籤用於通用,獨立於供應商的問題。 – rsenna 2011-03-10 16:30:18