我需要一個SQL Server數據庫的觸發器來計算單位價格。數據庫表名OrnekTbl
和列名SQL Server觸發器計算單位價格如何?
TotalPrice
Quantity
UnitPrice
如何更新UnitPrice
當我保存的TotalPrice
和Quantity
?
我需要一個SQL Server數據庫的觸發器來計算單位價格。數據庫表名OrnekTbl
和列名SQL Server觸發器計算單位價格如何?
TotalPrice
Quantity
UnitPrice
如何更新UnitPrice
當我保存的TotalPrice
和Quantity
?
假設您已經閱讀在評論上述警告,並假設你是SQL Server上,並假設你有某種對OrnekTbl鍵(我用Name
)的:
CREATE TRIGGER t_CalcUnitPrice ON OrnekTbl FOR INSERT, UPDATE AS
BEGIN
UPDATE o
-- Depending on the various types of your columns, CAST(x as DECIMAL(N, M)) may be needed
SET o.UnitPrice = i.TotalPrice/i.Quantity
FROM
INSERTED i
INNER JOIN OrnekTbl o
ON i.Name = o.Name
WHERE i.Quantity > 0; -- Avoid Div Zero
END;
但我並不想真正成爲應用程序FWIW上的維護開發者 - 觸發器在幕後工作,因此不會立即顯示出來理解和可讀性。
SQL服務器,TotalPrice(錢) 數量(「爲nvarchar(50)) 單價(錢) – user3198433
數量'NVARCHAR'現在是時候重新考慮你的表結構 – StuartLC
您推薦數量 – user3198433
請問哪位sql rdbms?另外,爲什麼不1)在您的應用程序中插入(或插入過程)時計算總價格;或者2)考慮計算列和節省空間。觸發器不應該是首選解決方案。 – StuartLC
我同意@StuartLC - 我不知道你爲什麼要存儲它:要麼在你的應用程序中使用計算列或計算它,要麼當你檢索該行或作爲「UnitPrice」屬性,它只有一個Getter在行創建的對象中執行此計算。 –
謝謝你的好感。我嘗試用visual basic編寫程序。當我保存總價格和數量時,我在我的gridview和sql數據庫中看到了這些值。在我的GridView中,我看到unitprice的計算,但sql數據庫沒有任何..我認爲,爲了解決這個問題,我需要觸發 – user3198433