Я пытаюсь создать триггер в SQL Server 2008, который вставляет строку во вторую базу данных после обновления в 1-й базе данных.Ошибка запуска SQL Server 2008 при использовании процедуры GETDATE
Однако я получаю сообщение об ошибке ..
(Процедура behaviour_alert, строка 11 Неправильный синтаксис около ')'
Является ли это из-за использования DATETIME в триггере.
Это работает как обычный запрос, я не понимаю, почему он не будет работать как триггер. Можете только настроить запрос, чтобы выбрать текущее время?
Запрос ниже
create trigger behaviour_alert
on [database1].[dbo].[studconduct]
for update
as
begin
declare @conductdatetime as datetime
set @conductdatetime = GETDATE()
insert into database2.dbo.behaviouralert
select *
from studconduct
where curr_ind='Y'
and cond_pts >= '5'
and conduct_date >= @conductdatetime
Что я здесь отсутствует, идя пересекла глазами, глядя на это. Возможно, у меня было слишком много кофе.
Редактировать: это то, с чем я столкнулся, и это сработало. Я пропустил END в конце триггера
create trigger behaviour_alert
on [database1].[dbo].[studconduct]
for update
as
begin
insert into database2.dbo.behaviouralert
select *
from studconduct
where curr_ind='Y'
and cond_pts >= '5'
and conduct_date >= datetime
end
Вам действительно нужна переменная? Что не так с 'and conduct_date> = GETDATE()'? –
И где ваша ссылка на 'вставленный' или' deleted' ... Конечно, было бы разумно использовать 'вставленный', а также явно указывать столбцы для' insert' и 'select' ... –
@ todda.speot. - поведение происходит только один раз в год, в конце года таблица стирается и начинается снова. каждый день и различные виды поведения. студент может иметь несколько плюсовых, но разных поведений. вы думаете, мне нужно – IanN