Триггер Вставить обновление, как определить, вставить или обновить

Ответ от @ Ib33X замечательный. Если вы хотите удалить каждую пустую строку, после удаления. вам также нужно использовать метод полосы. В противном случае он также вернет пустую строку, если она имеет пробелы. Например, «» будет действительным и для этого ответа. Таким образом, может быть достигнуто.

strings = ["first", "", "second ", " "]
[x.strip() for x in strings if x.strip()]

Ответ для этого будет ["first", "second"]. Если вы хотите использовать метод filter, вы можете сделать это как list(filter(lambda item: item.strip(), strings)). Это дает тот же результат.

147
задан gbn 12 April 2009 в 08:09
поделиться

1 ответ

Если это MS SQL Server ...

Триггеры имеют специальные таблицы INSERTED и DELETED для отслеживания данных «до» и «после». Таким образом, вы можете использовать что-то вроде IF EXISTS (SELECT * FROM DELETED) для обнаружения обновления. У вас есть только строки в DELETED при обновлении, но всегда есть строки в INSERTED .

Ищите «вставлено» в CREATE TRIGGER

Редактировать, 23 ноября 2011

После комментария этот ответ предназначен только для триггеров INSERTED и UPDATED .
Очевидно, что триггеры DELETE не могут иметь «всегда строк в INSERTED », как я уже говорил выше

159
ответ дан 23 November 2019 в 21:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: