sql >> Database >  >> RDS >> Sqlserver

Werk varbinary (MAX) kolom bij

De extra 0 wordt toegevoegd omdat de hele waarde waarop u deze instelt oneven is. SQL Server zal het opvullen met een extra 0 om het gelijk te maken.

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

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

Je 9 wordt weggelaten omdat je een oneven aantal bytes invoert dat de maximale waarde vult. Er wordt dus een 0 ingevoegd, maar deze overschrijdt het maximale aantal bytes en wordt dus ook afgekapt, zo lijkt het. Ik heb je fout kunnen repliceren... maar weet er nog geen oplossing voor.

Hier is de waarde die ik voor je test heb gebruikt. Negeer de resultaten... maar u kunt ze naar uw eigen SSMS kopiëren en de juiste uitvoer zien.

http://rextester.com/LMGQ8686




  1. RESTful Web Services aanroepen vanuit PostgreSQL procedure/functie

  2. Optellen, aftrekken en samenvoegen van meerdere mysql-tabelkolommen

  3. Rijen en kolommen transponeren zonder aggregatie

  4. Prestatieverbetering van PostgreSQL 9.6 opgeslagen procedure