Вставка или обновление триггера SQL с той же таблицей во избежание рекурсии - PullRequest
0 голосов
/ 06 мая 2018

Я человек с графическим интерфейсом SQL и у меня меньше опыта написания триггеров.Я немного искал и нашел следующий код.Я не могу сделать никакого изменения параметра уровня базы данных и не могу изменить схему таблицы.Столбец с именем Myvalue будет числом, но в некоторых он будет отображать десятичное значение.Моя цель состоит в том, чтобы при вставке или обновлении значение столбца Myvalue было целым числом.Если десятичное значение обновляется или вставляется, триггер сработает и удалит десятичное значение.Будет ли следующий код делать работу?Нужно ли использовать команду trigger_nestlevel, чтобы избежать рекурсии?Как я могу проверить, чтобы убедиться, что триггер запускается один раз, даже с несколькими строками при вставке или обновлении?

DROP TRIGGER IF EXISTS 'Mytrigger'  
CREATE TRIGGER ON Table1  
AFTER insert, update  
AS  
BEGIN  
    IF TRIGGER_NESTLEVEL(OBJECT_ID('Mytrigger')) <= 1  
    BEGIN  
        set nocount on  
        UPDATE Mytable set Myvalue=substring(Myvalue,0,charindex('.',Myvalue))  
        FROM Mytable t  
        inner join inserted i on i.Myvalue like '%.%'  
    END    
END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...