Bagaimana SQL Server mengetahui urutan catatan di set hasil eksekusi kueri?
Saya mencoba membuat kepala atau ekor tetapi menemukan diri saya menggaruk-garuk kepala. Ketika saya mengubah bidang saya memilih urutan juga berubah. Ketika saya menjalankan SQL di bawah ini dengan SELECT *
saya mendapatkan catatan yang sama tetapi dalam urutan yang jauh berbeda.
SELECT TOP (900)
AD.ATTACHMENTID,
AD.NAME,
AD.ISINLINE,
AD.INSERTEDDATETIME,
ATMT.ATTACHMENTBLOB,
U.UFID
FROM ATTACHMENTDETAIL AD WITH (NOLOCK)
INNER JOIN MESSAGEATTACHMENT MA ON MA.ATTACHMENTID = AD.ATTACHMENTID
INNER JOIN ATTACHMENT ATMT ON ATMT.ATTACHMENTID = AD.ATTACHMENTID
INNER JOIN MESSAGE MSG ON MSG.ID = MA.MESSAGEID
INNER JOIN MESSAGEDETAIL MD ON MD.MESSAGEID = MA.MESSAGEID
INNER JOIN [USER] U ON U.ID = MD.USERID
LEFT OUTER JOIN XmlExtractionMapping XM ON MA.MESSAGEID = XM.MessageId
WHERE AD.FILEBOXTOKEN IS NULL
AND (XM.XMLEXTRACTIONDATE IS NOT NULL OR
(MSG.MESSAGESOURCEID = 1 AND MD.FolderId <> -4))
AND AD.ISINLINE = 'FALSE'
ORDER BY
klausa, SQL Server (dan RDBMS lainnya) melakukan apa pun rasanya .
NOLOCK
- Anda akan melihat segala macam alasan mengapa Anda tidak boleh menggunakannya. Untuk yang terakhir, lihat sqlblog.com/blogs/aaron_bertrand/archive/2009/10/11/...