Зачем вам нужны триггеры? Вы можете использовать update
, чтобы изменить последние ':'
на '.'
:
update t
set col = stuff(col, 20, 1, '.');
Вы также ошибочно описываете столбец как datetime2
. Это использует внутренний формат даты / времени. Ваш столбец явно является строкой.
EDIT:
Я думаю, что неправильно истолковал вопрос (предполагая, что данные уже находятся в таблице). Внесите данные в промежуточные таблицы и выполните преобразование на другом шаге.
Триггер на текущей таблице не поможет, потому что преобразование типов происходит до вызова триггера. Подумайте, как работает триггер: данные доступны в «Протору».
Вы могли бы заставить работать триггер, создавая представления и создавая триггер для представления, но это еще хуже. Возможно, самое простое решение было бы:
- Измените имя и тип данных столбца, чтобы он содержал строку.
- Добавить вычисляемый столбец, который преобразует значение в
datetime2
.