webForumDet fria alternativet
Logga in / Bli medlem

trigger - delete (sql2000)

Databaser & SQL

2 svar · 227 visningar · startad av doggelito

Medlem sedan juni 20003 076 inlägg
Trådstart#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.

Medlem sedan dec. 200012 464 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.

Medlem sedan juni 20003 076 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
268 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
136 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)