Update varbinary (MAX) -Feld in SQLServer 2012 Lost Last 4 bits

In letzter Zeit möchte ich einige Datenpatches ausführen und versuchen, eine Spalte des Typs @ zu aktualisierevarbinary (MAX), der Aktualisierungswert sieht folgendermaßen aus:

0xFFD8F ... 6DC0676

Nach erfolgreicher Ausführung der Aktualisierungsabfrage lautet der Wert jedoch:

0x0 FFD8 ... 6DC067

Es scheint, dass die letzten 4 Bits verloren gegangen sind oder der gesamte Wert ein Byte nach rechts verschoben wurde ...

Ich habe versucht, die gesamte Zeile zu löschen und ein @ auszuführe Abfrage einfügen, die gleichen Dinge passieren!

Kann mir jemand sagen, warum das passiert und wie ich es lösen kann? Vielen Dank

Ich habe mehrere verschiedene Längen von Binärdateien ausprobiert, für maximales 43658 -Zeichen (jeweils 4 Bit, insgesamt ca. 21 KB), die Aktualisierungsabfrage wird normal ausgeführt. 1 weiteres Zeichen bringt den obigen "Bug" zum Vorschein ...

PS1: Für ein Varbinary mit kürzerer Länge als Aktualisierungswert ist alles in Ordnung

PS2: Ich kann ganze Binärstrings veröffentlichen, wenn es hilft, aber es ist wirklich lang und ich bin mir nicht sicher, ob es geeignet ist, diese hier zu veröffentlichen.

EDITED: Danke für jede Hilfe!

Wie von jemandem vorgeschlagen, kann der eingegebene Wert eine ungerade Anzahl von 4 Bit haben, sodass davor eine 0 angehängt wird. Hier sind meine Update-Informationen zum Wert:

Der Wert ist von 43677 Zeichen, die "0x" ausschließen undJa, es ist seltsam

Es erklärt, warum eine '0' vor eingefügt wird, aber erklärt nicht, warum das letzte Zeichen verschwindet ...

Dann mache ich ein Experiment:

Ich füge ein @ e Wert mit gerader Länge, bei mir manuell eine '0' vor dem ursprünglichen Wert hinzufügen,

Nun ist der zu aktualisierende Wert

0x0 FFD8F ... 6DC0676

was ist von 43678 Zeichen lang, außer "0x"

Das Ergebnis ist kein Glück, der aktualisierte Wert ist noch

0x0FFD8 ... 6DC067

Antworten auf die Frage(2)

Ihre Antwort auf die Frage