0
我在寫一個控制列的觸發器。腳本按我想要的方式工作,但我的問題在於引發錯誤。我希望觸發器能夠在不向用戶顯示錯誤信息的情況下工作。中斷沒有框消息的觸發器執行(tsql)
任何人都可以知道什麼是raiseerror的等價物而不會向用戶顯示錯誤消息嗎?
我嘗試了回滾事務,它給我提供了另一個錯誤消息,而我嘗試使用不會中斷觸發器執行的返回。
這是我的觸發器:
DECLARE @val varchar(9)
SELECT @val= [DC_Piece]
from INSERTED
where INSERTED [DC_Domaine]=0 and INSERTED.[DC_IdCol]=6
IF UPDATE([DC_Piece])
BEGIN
IF NOT EXISTS(select [DO_PIECE]
from DOCEN
where @val= [DO_Piece] and [DO_Domaine]=0 and [DO_Type]=6)
RAISERROR('STOP',11,1)
END
請幫我
你的觸發器有** **主要中的缺陷,你似乎認爲它會被稱爲**每排一次** - 這是**不* * 案子。觸發器將在每個語句**中觸發一次**,因此如果您的INSERT語句插入了25行,您將觸發一次觸發**,但隨後插入的行將包含25行。您的代碼在這25行中選擇哪一個? 'SELECT @ val = [DC_Piece] from INSERTED' - 這是非確定性的 - 你會得到一個任意的*行,並且你將**忽略所有其他的!你需要重寫你的觸發器來考慮這個問題! –
好吧,你能給我一個例子懇求 – hollyx
看到我的迴應 –