Вот такой триггер у меня получился.
Только я не знаю как можно перечислить поля таблицы, не обращаясь к ним по имени.
Не очень рационально, для каждого поля функцию вызывать.
Научите пожалуйста, как правильно сделать?
ALTER TRIGGER [dbo].[trg_student_u]
ON [dbo].[student]
AFTER UPDATE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
INSERT INTO dbo.history_jurnal
(id_user,id_action,date_action,description_action)
SELECT user_change,1,GetDate(),
(SELECT 'Изменение данных <Студента>
Старые значения:
'+convert(varchar, property1.value) + ': ' + del.lastname +'
'+convert(varchar, property2.value) + ': ' + del.name+ '
Новые значения:
'+convert(varchar, property1.value) + ': ' + ins.lastname +'
'+convert(varchar, property2.value) + ': ' + ins.name
FROM
fn_listextendedproperty (NULL, 'schema', 'dbo', 'table', 'student', 'column', 'lastname') as property1,
fn_listextendedproperty (NULL, 'schema', 'dbo', 'table', 'student', 'column', 'name') as property2,
inserted as ins, deleted as del),
FROM INSERTED
END