1、将大量数据拆分成多个列表结果集
DECLARE @t INT, @bt INT,@dv INT
SET @dv=100
SELECT @bt=COUNT(*) FROM sys.objects
IF (@bt%@dv)<>0
BEGIN
SET @t=@bt/@dv + 1
END
ELSE
BEGIN
SET @t=@bt/@dv
END
SELECT *
,NTILE(@t) OVER(ORDER BY type ASC) AS 'splitter'
INTO #TEMP
FROM sys.objects
WHILE @t>0
BEGIN
SELECT *
FROM #TEMP WHERE splitter=@t
SET @t=@t-1
CONTINUE
END
DROP TABLE #TEMP
SET @dv=100
SELECT @bt=COUNT(*) FROM sys.objects
IF (@bt%@dv)<>0
BEGIN
SET @t=@bt/@dv + 1
END
ELSE
BEGIN
SET @t=@bt/@dv
END
SELECT *
,NTILE(@t) OVER(ORDER BY type ASC) AS 'splitter'
INTO #TEMP
FROM sys.objects
WHILE @t>0
BEGIN
SELECT *
FROM #TEMP WHERE splitter=@t
SET @t=@t-1
CONTINUE
END
DROP TABLE #TEMP