SQL सर्वर में, पंक्ति में 9B के साथ एक स्मालिंट क्यों संग्रहीत किया जाता है। किसी कारण से NULL बिटमैप मास्क के अंत में एक अतिरिक्त एक बाइट लगती है।
यूएसई टेम्पर्ड; जाओ टेबल टेबल बनाएं ( मैं नहीं पूरी तरह से नहीं ); जाओ INSERT INTO tbl (i) वाल्व (1); जाओ DBCC IND ('tempdb', 'tbl', - 1); जाओ DBCC TRACEON (3604); - पेज डंप कंसोल जाएगा जाओ DBCC PAGE ('tempdb', 1,168,3); जाओ
परिणाम (मैंने DBCC पृष्ठ के पहले सबसे महत्वपूर्ण बाइट दिखाने के कारण बाइट्स को उलट दिया):
Record Size = 9B
10000500 01010000 00
TagA = 0x10 = 1B
TagB = 0x00 = 1B
Null Bitmap Offset = 0x0005 = 2B
Our integer column = 0x01 = 1B
Column Count = 0x0001 = 2B
NULL Bitmap = 0x0000 = 2B (what!?)