sql >> Database >  >> RDS >> Sqlserver

SQL Server 2012:dynamische SQL-beperking (> 4000 tekens) (gesplitst)

U hoeft de tekst niet in delen te splitsen. Je moet er wel voor zorgen dat er geen truncatie plaatsvindt terwijl je strings aaneenschakelen :

Zorg er dus voor dat de eerste aaneenschakeling werkt met een groot waardetype (en dus een groot waardetype als resultaat oplevert) en dat elke volgende aaneenschakeling van afkapping moet worden bewaard:

set @template=CONVERT(nvarchar(max),'if NOT EXISTS(select * from ' ) + @DestinationDB + ...

(Op deze manier hoeft u niet overal conversies in te voegen )

Dit genereert een fout:

declare @t nvarchar(max)

set @t = 'select LEN(''' + REPLICATE('A',3000) + REPLICATE('B',3000) + REPLICATE('C',3000) + ''')'

exec sp_executesql @t

En dit levert het resultaat 9000 op:

declare @t nvarchar(max)

set @t = CONVERT(nvarchar(max),'select LEN(''') + REPLICATE('A',3000) + REPLICATE('B',3000) + REPLICATE('C',3000) + ''')'

exec sp_executesql @t


  1. comprimeer de afbeeldingsgrootte bij het uploaden in codeigniter

  2. Meerdere synoniemenwoordenboekovereenkomsten bij zoeken in volledige tekst

  3. Gegevens moeten worden vervangen volgens de opzoektabel

  4. login mislukt voor gebruiker 'sa'. De gebruiker is niet gekoppeld aan een vertrouwde SQL Server-verbinding. (Microsoft SQL Server, fout:18452) in sql 2008