私はVS2010でデータベースプロジェクトを追加しようとしています。開発サーバーを指しているSQL 2008 DBプロジェクトを作成しました。これは、適切なスキーマオブジェクトをすべて生成したようです。ただし、CREATE TRIGGERスクリプトのすべてが、次のエラーがあります。エラーSQL03120の2008年のDBプロジェクトでのトリガースクリプト
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]の修飾子が解決できるように思えます。これを理解することはできません...
VS2010のDBプロジェクトは、SQLのように書かれているにもかかわらず、create文のトリガ名を修飾しないことがわかります。 – Vardoj