Как внести текущую дату в несколько столбцов с помощью триггера?

Имеется таблица примерно такого содержания:

  CREATE TABLE [dbo].[Actavia] (
        [Id]          INT           IDENTITY (1, 1) NOT NULL,
        [НО]          NVARCHAR (50) NULL,
        [Дата НО]     DATE          NULL,
        [ВО]          NVARCHAR (50) NULL,
        [Дата ВО]     DATE          NULL,
    );

С помощью тригера при создании новой записи в [Дата НО] вносится текущая дата

CREATE TRIGGER NumNOtrigger1
ON dbo.Actavia
AFTER INSERT
AS
UPDATE Actavia
SET 
    [Дата НО] = GETDATE() WHERE id=(SELECT id from inserted)    
GO

Суть вопроса. Как внести текущую дату в остальные столбцы, если на попытку сделать нижеуказанным способом ругается о неверном синтаксисе?

SET 
   [Дата НО] = GETDATE() WHERE id=(SELECT id from inserted),
   [Дата ВО] = GETDATE() WHERE id=(SELECT id from inserted)         
GO

Ответы (2 шт):

Автор решения: Aziz Umarov

Попробуйте сделать так

CREATE TRIGGER NumNOtrigger1
ON dbo.Actavia
AFTER INSERT
AS
UPDATE Actavia
SET 
    [Дата НО] = GETDATE(),
    [Дата ВО] = GETDATE() 
WHERE id IN (SELECT id from inserted)        
GO

А лучше забыть про триггер и заполнить таблицу по другому

CREATE TABLE [dbo].[Actavia] (
        [Id]          INT           IDENTITY (1, 1) NOT NULL,
        [НО]          NVARCHAR (50) NULL,
        [Дата НО]     DATE          NOT NULL Default GetDate(),
        [ВО]          NVARCHAR (50) NULL,
        [Дата ВО]     DATE          not NULL default GetDate(),
    );
→ Ссылка
Автор решения: Olga Romantsova
Доброго времени суток,sky_diez.

CREATE TRIGGER NumNOtrigger1
ON dbo.Actavia
AFTER INSERT
AS
UPDATE Actavia
SET  [Дата НО] = GETDATE(),
[Дата ВО] = GETDATE()
FROM Actavia X
JOIN inserted i ON X.id = i.id  
GO
→ Ссылка