我正致力于在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]限定符似乎是可以解析的。无法解决这个问题......
答案 0 :(得分:0)
由于在Google上搜索上述错误时会出现此帖子:此错误的另一个原因是,如果您在指定ALTER PROCEDURE
而不是{{1}的数据库项目中获得存储过程}}