Atualizar campo varbinary (MAX) no SQLServer 2012 Lost Last 4 bits
Recentemente, eu gostaria de fazer alguns patches de dados e tentar atualizar uma coluna do tipovarbinário (MAX), o valor da atualização é assim:
0xFFD8F ... 6DC0676
No entanto, após a consulta de atualização ser executada com sucesso, o valor se torna:
0x0FFD8 ... 6DC067
Parece que os últimos 4 bits estão perdidos, ou todo o valor está mudando um byte ...
Tentei excluir a linha inteira e execute umInserir consulta, mesmas coisas acontecem!
Alguém pode me dizer por que isso está acontecendo e como posso resolvê-lo? Obrigado!
Eu tentei vários comprimentos variáveis de binário, para obter o máximo43658 caracteres (cada um representa 4 bits, totalizando cerca de 21 KB), a consulta de atualização é executada normalmente. Mais 1 personagem fará com que o "bug" acima apareça ...
PS1: Para um comprimento menor como valor de atualização, está tudo bem
PS2: Posso postar toda a string binária, se ajudar, mas é muito longa e não tenho certeza se é adequada para postar aqui
EDITADO: Obrigado por qualquer ajuda!
Como alguém sugeriu, o valor inserido pode ter um número ímpar de 4 bits, então há um 0 acrescentado à frente. Aqui estão minhas informações de atualização sobre o valor:
O valor é de43677 caracteres longos excluindo "0x", que menasSim, é estranho
Explica por que um '0' foi inserido antes, masnão explica por que o último caractere desaparece ...
Então eu faço um experimento:
Insiro ummesmo valor de comprimento, adicione manualmente um '0' antes do valor original,
Agora, o valor a ser atualizado é
0x0FFD8F ... 6DC0676
que é de43678 caracteres, excluindo "0x"
O resultado não é sorte, o valor atualizado ainda é
0x0FFD8 ... 6DC067