Я не уверен, где вы собираетесь получить фактическое новое значение для desc, но я предполагаю, что вы получаете его из другой таблицы или чего-то подобного. Но у вас, вероятно, есть причина желать сделать это таким образом, поэтому ниже приведен пример того, как я бы это сделал.
То, что вы хотите, называется триггером INSTEAD OF INSERT, он запускается вместо вставки в таблицу с той логикой, которую вы ему даете.
CREATE TRIGGER trgUpdateDesc
ON Tb
INSTEAD OF INSERT
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO Tb (Name, [Desc])
SELECT Name, [Desc] + 'edited'
FROM inserted
END
GO
Я жестко закодировал слово «отредактировано» там, так как я не уверен, где вы хотите получить значение, но вы можете легко заменить его переменной или значением из другой таблицы.
О, также убедитесь, что поставьте [] вокруг Desc, так как это ключевое слово в sql server (обозначает нисходящий)
Надеюсь, это поможет!
Edit:
Если вы хотите сделать его немного более устойчивым, чтобы он не зависел от структуры таблицы, вы можете использовать триггер AFTER INSERT, чтобы просто обновить это поле следующим образом.
CREATE TRIGGER [dbo].[trgUpdateDesc]
ON [dbo].[Tb]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
UPDATE Tb
SET [Desc] = UPPER(inserted.[Desc]) + ' Edited'
FROM inserted INNER JOIN Tb On inserted.id = Tb.id
END