0
Никогда не записывал триггер раньше.SQL Server INSERT/UPDATE Строка даты конкатенации триггера
Нужно иметь триггер для вставки и обновления, который проверяет дату, и если день больше 25-го, устанавливает эту дату на 25-е число этого месяца.
Прямо сейчас я пытаюсь создать @newDate, и я не уверен, как это сделать.
Текущий код:
CREATE TRIGGER [dbo].[setASDate]
ON [dbo].[AutoShip]
AFTER UPDATE, INSERT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @DistID INT;
DECLARE @date INT;
DECLARE @month INT;
DECLARE @year INT;
IF UPDATE(DateNextShipment)
BEGIN
DECLARE @newDate datetime;
SELECT TOP 1 @DistID = DistID FROM INSERTED
SELECT TOP 1 @date = DATEPART(d, DateNextShipment) FROM INSERTED
SELECT TOP 1 @month = CONVERT(varchar(2),DATEPART(mm, DateNextShipment)) FROM INSERTED
SELECT TOP 1 @year = CONVERT(varchar(4),DATEPART(yyyy, DateNextShipment)) FROM INSERTED
@newDate = CONVERT(datetime,@year + '-' + @month + '-25')
If @date > 25
BEGIN
UPDATE AutoShip
SET DateNextShipment = @newDate, Day = 25
WHERE DistID = @DistID
END
END
END
EDIT - Обновлен код
Выглядит хорошо, но я 'm по-прежнему получает «неподходящий синтаксис рядом с ошибкой @newDate». Спасибо за помощь. – Silverwulf
На самом деле, сейчас это работает как шарм. Еще одна мелочь, которую мне нужно было изменить. k вас. – Silverwulf