Как вывести VARCHAR(MAX) с помощью Print Statement?

У меня есть код, который:

DECLARE @Script VARCHAR(MAX)

SELECT @Script = definition FROM manged.sys.all_sql_modules sq
where sq.object_id = (SELECT object_id from managed.sys.objects 
Where type = 'P' and Name = 'usp_gen_data')

Declare @Pos int

SELECT  @pos=CHARINDEX(CHAR(13)+CHAR(10),@script,7500)

PRINT SUBSTRING(@Script,1,@Pos)

PRINT SUBSTRING(@script,@pos,8000)

Длина сценария составляет около 10000 символов, и поскольку я использую заявление печати, которое может вместить только максимум 8000. Поэтому я использую два оператора печати.

Проблема в том, что когда у меня есть сценарий длиной, скажем, 18000 символов, я использую 3 оператора печати.

Есть ли способ установить количество операторов печати в зависимости от длины сценария?

94
задан Kelsey 21 October 2011 в 14:12
поделиться