sql >> Database >  >> RDS >> Sqlserver

Voor Nvarchar (Max) krijg ik maar 4000 tekens in TSQL?

U hebt dit gedeclareerd als nvarchar(max), wat 2 GB aan gegevens toestaat, zodat het 2 GB kan opslaan.

Wat gebeurt er:

  • Het datatype is nog niet nvarchar(max) tot toewijzing naar @sql1
  • Daarvoor is het een verzameling strings, elk minder dan 4000 (constanten)
  • Je koppelt korte constanten aan korte variabelen (short =<4000)
  • Dus je hebt 4000 tekens in @sql1

Zorg er dus voor dat u nvarchar(max) aan de rechterkant heeft.

Een idee. De 2e regel voegt nvarchar(max) samen met een constante =nvarchar(max)

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

Het is niet anders dan de gehele deling die in elke taal voorkomt.

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

De prioriteit van de operator (leidt de prioriteit van het gegevenstype af) is altijd "toewijzing" als laatste... waarom zouden unicode-tekenreeksen in SQL Server anders zijn?



  1. Controleer niet-verzonden e-mail in SQL Server (T-SQL)

  2. Voorbeelden van PHP + MySQL-transacties

  3. Automatisch SQLite-queryresultaten openen in een teksteditor

  4. (Android) Vind pad /Android in interne opslag