4

我正在努力在 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 将错误归因于的行是执行系统过程的最后一行。对我来说最突出的是 dbo 模式中不存在任何对象。该表位于 Content 模式中,并且在 History 模式中具有匹配的表。不过,似乎 [Content] 和 [History] ​​限定词是可以解析的。想不出来这个...

4

1 回答 1

2

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

于 2016-10-12T11:49:47.550 回答