Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Актуализирайте колоната varbinary(MAX).

Допълнителната 0 се добавя, защото цялата стойност, на която я задавате, е странна. SQL Server ще го допълни с допълнителна 0, за да го направи равномерен.

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

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

Вашето 9 се изпуска, защото въвеждате нечетен брой байтове, които запълват максималната стойност. И така, вмъква се 0, но това превишава максималния брой байтове и по този начин също изглежда съкратено. Успях да репликирам вашата грешка... но все още не знам начин да я заобиколя.

Ето стойността, която използвах за вашия тест. Игнорирайте резултатите... но можете да ги копирате във вашия собствен SSMS и да видите правилния резултат.

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. Получаване на динамично генерирана обобщена таблица във времева таблица

  2. Пълен текстов каталог/търсене в индекс за %book%

  3. 8078 байта в страница с данни 8060 B (SQL Server)?

  4. Как да планирате скрипт в SQL Server Express (без SQL Server Agent)?

  5. Помощ за SQL Query - Обединяване на множество колони въз основа на условие