以下是某sql语句的查询结果:id    col1    col2
1       a      111111111111111111111111111111111
2       g      22222
3       k      77777777777777777777777777777777777777777
..      ..     .......
为方便打印             id    col1    col2
1       a      111111111111
               111111111111111111111
2       g      22222
3       k      77777777777777777777
               777777777777777777777
..      ..     .......
DECLARE @s varchar(2000)
DECLARE @id int,@col1 varchar(20),@col2 varchar(100)
SET @s='SELECT '
DECLARE cur CURSOR FOR
SELECT top 16 id,col1,col2 FROM test            
OPEN cur
FETCH NEXT FROM cur
INTO @id, @col1,@col2WHILE @@FETCH_STATUS = 0
BEGIN
IF LEN(@col2)>15
BEGIN
SELECT @s=@s+''''+RTRIM(@id)+''','''+@col1+''','''+LEFT(@col2,15)+''' UNION ALL 
SELECT NULL,NULL,'''+RIGHT(@col2,LEN(@col2)-15)+ ''' UNION ALL select'
END
ELSE
BEGIN
SELECT @s=@s+''''+RTRIM(@id)+''','''+@col1+''','''+@col2+''' UNION ALL  SELECT '
ENDFETCH NEXT FROM cur
INTO @id, @col1,@col2
END
SELECT @s=LEFT(@s,LEN(@s)-16)
EXEC(@s)
CLOSE cur
DEALLOCATE cur
GO
语句中 SELECT  top 16 id,col1,col2 FROM test 语句成功(但是  top 17 以后 就失败  也就是只有前16行可以执行)
换了一个表出现相似问题(到 top 25 以后 失败)