VS2010 にデータベース プロジェクトを追加しようとしています。開発サーバーを指す SQL 2008 DB プロジェクトを作成しましたが、適切なスキーマ オブジェクトがすべて生成されたようです。ただし、すべての CREATE TRIGGER スクリプトには次のエラーがあります。
SQL03120: Cannot find element referenced by the supporting statement
そのエラーメッセージをグーグルで調べてもあまり返されず、ここでは当てはまらない CREATE の代わりに ALTER を使用するスクリプトを指しているようです。これは、スクリプトの 1 つの例です。
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] 修飾子は解決可能のようです。これが思いつかない…