AFTER INSERT
AS
BEGIN
DECLARE
@p_newColorCode int
SET NOCOUNT ON;
SELECT @p_newColorCode = i.COLOR_CODE,
@p_newStateCode = i.STATE,
FROM inserted I
BEGIN TRANSACTION
IF @p_newColorCode IS NOT NULL
BEGIN
INSERT INTO CALL_HISTORY(CALL_HISTORY_REC_NO,CHANGE_PERSON,CHANGE_DATE,CHANGE_TYPE,CHANGE)
VALUES(@p_call_hist_rec_no,22,GETDATE(),@p_newPlateNo +': ADDED COLOR', dbo.fn_GetCodeDesc(@p_newColorCode))
END
由於某些原因,當@p_newColorCode爲NULL時,它仍然進入IF。我還需要做些什麼才能做到這一點?如何檢查sql觸發器中的變量是否爲空SQL Server 2008
感謝您的幫助提前。
SQL Server 2008 stnd。
謝謝你的建議,是的,通常我不會這樣做,但在這種情況下,程序不能一次插入或更新一個以上的記錄,所以沒關係,但我同意你通常不會做這件事很好。就性能而言,不會有必要爲每個字段做一個選擇。因爲爲了簡單起見,我只提一個,但可能有40個字段需要檢查。再次感謝您的建議。 –
數據庫被應用程序以外的機制插入。你永遠不能認爲只有一條記錄會被插入。 – HLGEM