【问题标题】:Create trigger error: 'Incorrect Syntax near 'dbo'创建触发器错误:'dbo' 附近的语法不正确
【发布时间】:2015-11-13 08:09:11
【问题描述】:

我目前正在学习一些有关 SQL 触发器的知识。我正在尝试在测试表上创建一个列,该列将显示行更新时的当前日期。列数据类型是 DateTime 类型到目前为止我有:

CREATE TRIGGER lastUpdated
ON [dbo].[ImportTest]
AFTER UPDATE
AS
BEGIN 
    IF NOT UPDATE(LAST_UPD)
    BEGIN
        SET [dbo].[ImportTest].[LAST_UPD] = CURRENT_TIMESTAMP
    END
END 
GO

但是,我在尝试执行时收到以下错误:

消息 102,级别 15,状态 1,过程 lastUpdated,第 29 行
'dbo' 附近的语法不正确。

任何帮助将不胜感激。

【问题讨论】:

    标签: sql sql-server triggers


    【解决方案1】:

    您无法更新列,例如为变量赋值。试试这个

    IF NOT UPDATE(LAST_UPD)
      BEGIN
          UPDATE IT
          SET    [LAST_UPD] = CURRENT_TIMESTAMP
          FROM   [dbo].[ImportTest] IT
          WHERE  EXISTS (SELECT 1
                         FROM   inserted i
                         WHERE  i.somecol = it.somecol
                         And ...)
      END 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多