21 September 2016

How to use SQL string variable larger than 4000 character in SQL server Stored Procedure?

Quando componi una stringa, per poi eseguirla con una sp_executesql o una EXEC(), il limite è di 4000 caratteri.

Spezzando le stringhe in tante variabili, si può andare oltre i 4000 caratteri:
DECLARE @query  VARCHAR(MAX)
DECLARE @query2 VARCHAR(MAX)
DECLARE @query3 VARCHAR(MAX)
DECLARE @query4 VARCHAR(MAX)

SET @query  = 'SELECT '''
SET @query2 = ''
SET @query3 = ''
SET @query4 = ''

SET @query =  @query + REPLICATE('A', 3000)
SET @query2 = @query2 + REPLICATE('B', 3000)
SET @query3 = @query3 + REPLICATE('C', 3000)
SET @query4 = @query4 + REPLICATE('D', 3000) + ''''

EXEC (@query + @query2 + @query3 + @query4)

Trovato qui. Testato su SQL SQL2008R2 e 2014.