삭제 트리거를 만들려고합니다. Nemanet_Navigation이라고하는 네비게이션 테이블이 있습니다. 테이블 자체에 대한 외래 키가 있지만 INSERT 및 UPDATE 스펙에서 선택된 테이블에 대한 관계를 선택할 때 - Delete Rule NO Action. 그래서 저는 계단식을 선택하지 않았습니다. 그럼이 트리거가 :테이블에 계단식 DELETE가있는 외래 키가 있기 때문에 삭제 트리거를 만들 수 없습니다
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
을하지만 다음과 같은 오류 얻을 : 테이블 계단식 외국 키가 삭제 있기 때문에
Cannot create INSTEAD OF DELETE trigger 'Del_Nemanet_Navigation' on 'Nemanet_Navigatin'.
이입니다. 하지만 내 Nemante_Navigation 테이블에는 삭제 규칙이 있습니다. 아무런 조치가 없습니다 (그러나 내가 모르는 이유로 회색으로 표시되어 있습니다. 변경할 수 없습니다). 트리거는 Nemanet_Navigation Table 아래의 Triggers 폴더에 있습니다. 아무도 도와 줄 수 있니?
어떤 버전의 SQL Server입니까? –