削除トリガーを作成しようとしています。Nemanet_Navigationと呼ばれるこのナビゲーションテーブルがあります。テーブルにはそれ自体への外部キーがありますが、INSERTおよびUPDATE仕様で選択したテーブルの関係を選択する場合-ルールNOアクションを削除します。したがって、カスケードは選択しません。次に、このトリガーがあります。
CREATE TRIGGER Del_Nemanet_Navigation ON Nemanet_Navigation
INSTEAD OF DELETE
AS
CREATE TABLE #Table(
Nav_ID uniqueidentifier
)
INSERT INTO #Table (Nav_ID)
SELECT Nav_ID
FROM deleted
DECLARE @C uniqueidentifier
SET @c = 0
WHILE @C <> (SELECT COUNT(Nav_ID) FROM #Table) BEGIN
SELECT @c = COUNT(Nav_ID) FROM #Table
INSERT INTO #Table (Nav_ID)
SELECT Nemanet_Navigation.Nav_ID
From Nemanet_Navigation
LEFT OUTER JOIN #Table ON Nemanet_Navigation.Nav_ID = #Table.Nav_ID
WHERE Nemanet_Navigation.Nav_pID IN (SELECT Nav_ID FROM #Table)
AND #Table.Nav_ID IS NULL
END
DELETE Nemanet_Navigation
FROM Nemanet_Navigation
INNER JOIN #Table ON Nemanet_Navigation.Nav_ID = #Table.Nav_ID
しかし、次のエラーが発生します。
'Nemanet_Navigatin'にINSTEADOFDELETEトリガー'Del_Nemanet_Navigation'を作成できません。
これは、テーブルにDELETEがカスケードされた外部キーがあるためです。しかし、私のNemante_Navigationテーブルには削除ルールがあります-アクションはありません(しかし、私にはわからない何らかの理由で灰色でマークされています-そしてそれを変更することはできません)。トリガーは、Nemanet_Navigationテーブルの下のTriggersというフォルダーにあります。誰か助けてもらえますか?