Здравствуйте подскажите пожалуйста. Сделал следующее: 1) есть таблица manufactures(created_at - datetime) (по умолчанию заполняется getdate()); 2) есть таблица manufactures_log(created_at - datetime) (по умолчанию заполняется getdate()); 3) и есть тригер такого содержания (на изменение) /*UPDATE*/ INSERT INTO [manufactures_log] (old_id, table_id, created_by, created_at, type_of_change, name) SELECT a.[id] [table_id], (SELECT TOP 1 [id] FROM manufactures_log WHERE [table_id] = a.[id] ORDER BY [id] DESC) [old_id], a.[name] [name], @uname [created_by], GETDATE() [created_at], 'update' [type_of_change] FROM inserted a LEFT JOIN deleted b ON b.[id] = a.[id] WHERE a.[name]<>b.[name] OR (a.[name] IS NULL AND b.[name] IS NOT NULL) OR (a.[name] IS NOT NULL AND b.[name] IS NULL) AND b.[id] IS NOT NULL Тригер работает на добавление запись создается, но когда я пытаюсь изменить ее в БД выходит ошибка:conversion failed when converting date and/or time from character string Подсажите, как можно исправить эту проблему?
проблема решилась следующим образом: порядок файлов INSERT INTO [manufactures_log] (old_id, table_id, created_by, created_at, type_of_change, name) не нужно нарушать в SELECT, т.е. SELECT выводим в таком же порядке как и указано в скобках. (select)[old_id a.[id] [table_id] @uname [created_by] и т.д.