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

За Nvarchar(Max) получавам само 4000 знака в TSQL?

Декларирахте това като nvarchar(max), което позволява 2GB данни, така че ще съхранява 2GB.

Какво се случва:

  • Типът данни все още не е nvarchar(max) до присвояване до @sql1
  • Преди това това е колекция от низове, всеки по-малко от 4000 (константи)
  • Конкатенирате къси константи с кратки променливи (short =<4000)
  • Значи имате 4000 знака, поставени в @sql1

Така че трябва да се уверите, че имате nvarchar(max) от дясната страна.

Една идея. Вторият ред обединява nvarchar(max) с константа =nvarchar(max)

SET @SQL1 = ''
SET @SQL1 = @SQL1 + 'SELECT DISTINCT Venue...
   ....

Не се различава от целочисленото деление, което се случва на всеки език.

declare @myvar float
set @myvar = 1/2 --gives zero because it's integer on the right

Приоритетът на оператора (извежда приоритета на типа данни) винаги е "присвояване" последно... защо низовете на Unicode в SQL Server трябва да бъдат различни?



  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. Как да вмъкна запис само със стойности по подразбиране?

  3. Избор и конфигуриране на хардуер за SQL Server 2016 Standard Edition

  4. Колко размер заема стойността Null в SQL Server

  5. Задайте двойки ключ/стойност в контекста на сесията в SQL Server (sp_set_session_context)