2008 DB DB中的触发器脚本上的SQL03120错误

时间:2012-01-24 16:27:35

标签: visual-studio-2010 triggers dbproj

我正致力于在VS2010中添加数据库项目。我创建了一个SQL 2008 DB项目,指向开发服务器,它似乎生成了所有适当的模式对象。但是,所有CREATE TRIGGER脚本都有以下错误:

SQL03120: Cannot find element referenced by the supporting statement

谷歌搜索该错误消息并没有太多回复,并且似乎指向使用ALTER而不是CREATE的脚本,这不是这里的情况。这是其中一个脚本的示例:

CREATE TRIGGER [TR_t_TABLE_TRIGGERNAME] ON [content].[t_TABLE]
FOR INSERT
AS
BEGIN
    IF ( SELECT COUNT(*) FROM inserted) > 0 
        BEGIN
            DECLARE @columnBits VARBINARY(50)
            SELECT @columnBits = COLUMNS_UPDATED() | CAST (0 AS BIGINT)
            INSERT  INTO [history].[t_TABLE]
                    (
                       ....    
                    )
                    SELECT 
                       ....
                    FROM inserted
        END
END
GO
EXECUTE sp_settriggerorder @triggername = N'[Content].[TR_t_TABLE_TRIGGER]', @order = N'last', @stmttype = N'insert';

Visual Studio将错误归因于的行是执行系统proc的最后一行。对我来说最突出的是dbo架构中没有任何对象存在。该表位于Content模式中,并且它在History模式中具有匹配的表。看起来[Content]和[History]限定符似乎是可以解析的。无法解决这个问题......

1 个答案:

答案 0 :(得分:0)

由于在Google上搜索上述错误时会出现此帖子:此错误的另一个原因是,如果您在指定ALTER PROCEDURE而不是{{1}的数据库项目中获得存储过程}}