У меня есть запись, которую я просмотрел, используя команду страницы DBCC.Вот как это выглядит:
Memory Dump @0x00E5C060
00000000: 30000800 01000000 02000001 001f8000 †0...............
00000010: 00d10700 0000009a 00000001 000000††††...............
Slot 0 Column 0 Offset 0x4 Length 4
col1 = 1
col2 = [Textpointer] Slot 0 Column 1 Offset 0xf Length 16
TextTimeStamp = 131137536 RowId = (1:154:0)
Здесь col1
имеет тип int
, а col2
имеет тип ntext
.
Я знаю, что значения столбцов ntext
хранятся втекстовая страница.
Но я не знаю, как интерпретировать информацию col2 выше, например:
col2 = [Textpointer] Slot 0 Column 1 Offset 0xf Length 16
TextTimeStamp = 131137536 RowId = (1:154:0)
Может кто-нибудь помочь мне понять это?
Спасибо заотвечая,
"col2 = [Textpointer] Slot 0 Column 1 Offset 0xf Length 16"
00000000: 30000800 01000000 02000001 001f8000 †0...............
00000010: 00d10700 0000009a 00000001 000000††††...............
При этом говорится, что длина информации равна 16. Ее эквивалентные шестнадцатеричные значения:
00 00d10700 0000009a 00000001 000000†††
Я могу найти информацию о
TextTimeStamp = 131137536 RowId = (1:154:0)
в вышеуказанных шестнадцатеричных значениях.Но как я могу найти информацию, что это текстовый указатель?
Более того, в другом случае я наткнулся на [Inline Blob root]
для значения типа данных nvarchar.
Вот как это выглядело:
col6= [BLOB Inline Root] Slot 1 Column 38 Offset 0x16d Length 24
Level = 0 Unused = 0 UpdateSeq = 1
TimeStamp = 1969553408
Link 0
Здесь, если вы заметили, что длина равна 24, в отличие от предыдущего экземпляра (текстовый указатель). Здесь есть некоторая дополнительная информация, а также последовательность обновления: UpdateSeq = 1.
Как я могу различитьмежду двумя экземплярами, посмотрев на последовательность байтов?