0

我正在尝试在 SQL Server 2008 中创建一个触发器,该触发器在第一个数据库中更新后将一行插入到第二个数据库中。

但是我不断收到错误..

(过程 behavior_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
4

1 回答 1

3

我认为问题不在 GETDATE() 中。也许您只是在触发器结束时忘记了 END ?

于 2011-08-09T01:28:16.910 回答