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

Как мога да вмъкна повече от 8000 знака в колона VARCHAR(MAX) с ExecuteNonQuery?

REPLICATE връща входния тип независимо от по-късно присвояване. Досадно е, но за да избегнете тихото съкращаване, опитайте:

SET @x = REPLICATE(CONVERT(VARCHAR(MAX), 'a'), 10000);

Това е така, защото SQL Server изпълнява REPLICATE операция, преди да обмисли към какво го присвоявате или до колко знака се опитвате да го разширите. Той се интересува само от входния израз, за ​​да определи какво трябва да върне, и ако входът не е максимален тип, той приема, че е предназначен да се побере в рамките на 8000 байта. Това е обяснено в Книги онлайн :



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преобразуване на дата и култура:Разлика между DATE и DATETIME

  2. SQL заявка към множество бази данни

  3. Трябва ли да се декларира скаларна променлива @Id?

  4. Как да изпълня MSSQL съхранена процедура с ADOdb PHP библиотека?

  5. PHP, ORM, MSSQL и Unicode, възможно ли е да ги накараме да работят заедно?