无效的对象名称'dbo.trgAfterUpdate' - 触发错误

时间:2014-02-28 03:19:14

标签: sql sql-server triggers

我为我的应用程序创建了一个触发器,它允许我保留在我的网格中编辑的记录的历史记录。

我收到错误:无效的对象名称'dbo.trgAfterUpdate'。并不确定为什么。

这是我的触发器:

USE [TestTable]
GO
/****** Object:  Trigger [dbo].[trgAfterUpdate]    Script Date: 2/25/2014 6:31:25 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[trgAfterUpdate] ON [dbo].[summary] 
FOR UPDATE
AS
    declare @ID int;
    declare @CR varchar(50);
    declare @Product varchar(50);
    declare @Description varchar(MAX);

    select @ID=i.ID from inserted i;    
    select @CR= i.CR from inserted i;   
    select @Product = i.Product from inserted i;    
    select @Description=i.Description from inserted i;  

    if update(Product)
        Set @Summary = 'Old value was: ' + (Select Product from deleted) + ' New Value is: ' + (Select Product from inserted)
        set @Changes_Made='Updated Record -- After Update Trigger.';

        insert into History(ID,Product,Description,Changes_Made,Audit_Timestamp, Summary) 
    values(@ID,@Product,@Description,@Changes_Made,getdate(), @Summary);

如何解决这个问题的任何帮助都会很棒!

3 个答案:

答案 0 :(得分:2)

首先确认该表存在。试试这个:

use [TestTable]
GO

select * from [dbo].[summary] 

如果您收到该表不存在的消息,那么您就知道问题所在:)

答案 1 :(得分:1)

这通常意味着两件事之一。

  • 你引用了一个对象(表,触发器,存储过程等) 实际上并不存在(即,您执行查询以更新a 表,并且该表不存在。)
  • 该表存在,但您没有正确引用

尝试使用数据库名称

喜欢

ALTER TRIGGER [dbName].[dbo].[trgAfterUpdate] ON [dbName].[dbo].[summary] 
FOR UPDATE
AS

答案 2 :(得分:0)

我的问题是我没有刷新本地缓存。 所以我

Ctrl + Shift + R

和voilà。