sql >> Database teknologi >  >> RDS >> Sqlserver

Opdater varbinary(MAX) kolonne

Den ekstra 0 tilføjes, fordi hele den værdi, du indstiller den til, er ulige. SQL Server vil fylde det med et ekstra 0 for at gøre det jævnt.

declare @varmax varbinary(max) 
set @varmax = 0x1234567         --odd
select @varmax                  --returns 0x01234567 with the padded 0

set @varmax = 0x12345678        --even
select @varmax                  --returns 0x12345678

Din 9 bliver slettet, fordi du indtaster et ulige antal bytes, der fylder maxværdien. Så der indsættes et 0, men dette overskrider det maksimale antal bytes og er derfor også trunkeret, ser det ud til. Jeg var i stand til at replikere din fejl... men kender ikke en vej uden om det endnu.

Her er den værdi, jeg brugte til din test. Ignorer resultaterne... men du kan kopiere dem til din egen SSMS og se det korrekte output.

http://rextester.com/LMGQ8686




  1. Forsøger at opdatere 640k rækker i mySQL mister forbindelsen til MySQL-serveren under forespørgsel

  2. Tvinger alle rækker fra den første tabel i en joinforbindelse

  3. Glemt Password Script PHP mysqli database

  4. Hvordan springer man over tomme data i MySQL?