Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zaktualizuj kolumnę varbinary (MAX)

Dodawane jest dodatkowe 0, ponieważ cała wartość, na którą je ustawiasz, jest nieparzysta. SQL Server doda do niego dodatkowe 0, aby wyrównać.

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

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

Twoja 9 jest odrzucana, ponieważ wpisujesz nieparzystą liczbę bajtów, która wypełnia maksymalną wartość. Tak więc wstawiane jest 0, ale to przekracza maksymalną liczbę bajtów, a zatem wydaje się również obcinane. Udało mi się odtworzyć twój błąd... ale nie znam jeszcze sposobu.

Oto wartość, której użyłem w twoim teście. Zignoruj ​​wyniki ... ale możesz skopiować je do własnego programu SSMS i zobaczyć prawidłowe dane wyjściowe.

http://rextester.com/LMGQ8686




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Scalanie danych z 2 tabel

  2. Pomysłowe narzędzie SQL Password Changer do resetowania hasła SQL

  3. Jak wybrać [tabela temp1] =[podwybór 1], [tabela temp2] =[podwybór 2] Z [Procedura zapisana]

  4. Instrukcja INSERT EXEC nie może być zagnieżdżona

  5. Połącz dwie tabele za pomocą dwóch kolumn SQL Server 2008 R2