webForumDet fria alternativet

trigger - delete (sql2000)

2 svar · 227 visningar · startad av doggelito

doggelitoMedlem sedan juni 20003 100 inlägg
#1

har denna trigger:

CREATE TRIGGER FileDeleteRelation ON [File] FOR DELETE
AS
	BEGIN
	SET NOCOUNT ON

	DELETE FROM [File] WHERE RelationIDno in(SELECT IDno FROM deleted)
	END

men den funkar inte riktigt som jag önskar. :(

cenario:
jag raderar en post i tabellen File, triggern körs och raderar alla poster med samma RelationIDno, triggern funkar så långt.
men, det finns även poster som relaterar till de som relaterar till den posten som raderades! hänge ni med?! :) Dessa poster måste också raderas, hur göra detta?

fråga 2: kan man inte skapa en relation och köra cascading delete när man har en tabell som relaterar till sig själv? checkboxen för delete är disabled.

LarsGMedlem sedan dec. 200012 465 inlägg
#2

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_sp_da-di_8c32.asp

titta efter recursive triggers.

Fråga 2:

Det tycker jag absolut att man bör kunna men tydligen inte. Klent.

doggelitoMedlem sedan juni 20003 100 inlägg
#3

fixat! :)

CREATE TRIGGER FileDeleteRelation ON [File] FOR DELETE
AS
	IF @@rowcount = 0 RETURN

	DELETE FROM F
	FROM [File] AS F JOIN deleted AS D
	ON F.RelationIDno = D.IDno
Genererad på 506 ms · cache AV · v20260730165559-full.f96bc7eb