Bonjour,
Je travaille avec Sql Server Managment Studio (2005) et j'aimerais savoir comment prévisualiser l'execution plan d'un trigger.
Le problème, si j'utilise "Query" -> "Display estimated execution plan..." est que ce plan sera établit sur la commande CREATE
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 CREATE TRIGGER [dbo].[tClubMembers_AFUPDINS] ON [dbo].[tClubMembers] AFTER UPDATE, INSERT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON UPDATE tMembers SET HomeClub = I.IdClub FROM inserted AS I WHERE I.IsHomeclub = 1 AND tMembers.Id = I.IdMember -- to avoid meaningless update (and potential trigger recusrion) AND tMembers.HomeClub <> I.IdClub UPDATE tClubMembers SET IsHomeclub = 0 FROM inserted AS I INNER JOIN tMembers AS T ON ( T.Id = I.IdMember ) WHERE I.IsHomeclub = 1 AND tClubMembers.IdMember = I.IdMember AND tClubMembers.IdClub <> T.HomeClub; -- Synchro WITH concernedClubs ( IdClub ) AS ( SELECT C.Id FROM tClubs AS C WHERE C.IsMygolf = 1 AND C.Federal = 1 ) INSERT tSynchro_BatchMemberLines ( IdMember , IdClub ) SELECT I.IdMember , I.IdClub FROM inserted AS I INNER JOIN tMembers AS M ON ( M.Id = I.IdMember AND M.FederalNumber <> '' ) WHERE EXISTS ( SELECT TOP(1) 1 FROM concernedClubs AS C WHERE C.IdClub = I.IdClub ) AND ( I.Membership > GETDATE() OR EXISTS ( SELECT TOP(1) 1 FROM deleted AS D WHERE D.IdMember = I.IdMember AND D.IdClub = I.IdClub AND D.Membership > GETDATE() ) ) END
Savez-vous comment faire ? (en employant les tables virtuelles inserted et delete, je ne peux hélas pas sortir le query d'une creation de trigger).
Partager