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 :
CRÉER LE PROCÉDÉ [dbo]. [prc_Messages_Response_Select_All] @FromProfileID international AS COMMENCER PLACER NOCOUNT DESSUS ; ; AVEC des msgs AS ( -- recevoir le premier message CHOISIR 0 comme MessageLevel, a. [MessageID], a. [ProfileID], a. [FromProfileID], a. [FromUsername], b. [username] COMME SentToUserName, a. [sujet], a. [corps], converti (varchar, A. [MsgDate], 107) COMME zdate, a. [MsgDate], a. [MsgRead], a. [MsgReplied], a. [MsgNew], a. [ReplyOfMessageID], a. [InitialMessageID] DE [tbl_Messages] a INTÉRIEUR JOINDRE b [tbl_Profile] SUR a. [ProfileID] = B. [ProfileID] LÀ OÙ a. [FromProfileID] = @FromProfileID -- partie récursive de CTE UNION TOUTE CHOISIR m.MessageLevel + 1, a. [MessageID], a. [ProfileID], a. [FromProfileID], a. [FromUsername], b. [username] COMME SentToUserName, a. [sujet], a. [corps], converti (varchar, A. [MsgDate], 107) COMME zdate, a. [MsgDate], a. [MsgRead], a. [MsgReplied], a. [MsgNew], a. [ReplyOfMessageID], a. [InitialMessageID] DE [tbl_Messages] a INTÉRIEUR JOINDRE b [tbl_Profile] SUR a. [ProfileID] = B. [ProfileID] INTÉRIEUR JOINDRE msgs m SUR a. [ReplyOfMessageID] = M. [MessageID] OU A. [InitialMessageID] = M. [MessageID] -- ne peut pas avoir besoin de ceci ) CHOISIR * À PARTIR des msgs ORDRE PAR MessageLevel, [MsgDate] DESC ; EXTRÉMITÉ