1 /*b━┅━┅━┅━┅━┅━┅━┅━┅━━┅━┅━┅━┅━┅━┅━┅━━┅━┅━┅━┅━┅━┅━┅━┅━━┅━┅━┅━┅━┅━┅━┅━*/
2 --While 循环
3 -----------------------------------------------------------------------------------------------------------------------------------
4 IF(SELECT OBJECT_ID('tempdb..#tmp_Ret')) IS NOT NULL
5 DROP TABLE tempdb..#tmp_Ret ;
6
7 CREATE TABLE #tmp_Ret(
8 Id INT IDENTITY(1,1),
9 TbName nvarchar(300),
10 TbRowCount INT,
11 TbRowCountLen INT
12 );
13
14 IF(SELECT OBJECT_ID('tempdb..#Temp_Lists')) IS NOT NULL
15 DROP TABLE tempdb..#Temp_Lists ;
16 -- 获取待处理的数据记录到临时表
17 -- 字段说明:REFID:记录行号 / DealFlg:行处理标识
18 SELECT REFID = IDENTITY(INT , 1, 1), DealFlg = 0, ORDERID=CAST(name AS NVARCHAR(400))
19 INTO #Temp_Lists
20 FROM sysobjects
21 WHERE xtype='U';
22
23 DECLARE @REFID INT
24 ,@ORDERID NVARCHAR(300)
25 ,@LXH_SQLStr NVARCHAR(4000)
26 ,@LXH_Name NVARCHAR(300)
27 ,@LXH_Count INTEGER
28 ,@LXH_Len INTEGER;
29
30 -- 获取临时表数据的最小行号
31 SELECT @REFID = MIN(REFID) FROM #Temp_Lists WHERE DealFlg = 0;
32
33 -- 若最小行号不为空(有需要处理的数据)
34 WHILE @REFID IS NOT NULL
35 BEGIN
36 -- 获取当前处理行的信息
37 SELECT @ORDERID = ORDERID FROM #Temp_Lists WHERE REFID = @REFID;
38
39 /*
40 此处编写对当前行数据的业务逻辑处理代码
41 */
42 SET @LXH_SQLStr = 'SELECT @Curr_Count=COUNT(*),@Curr_Len=LEN( CAST(COUNT(*) AS NVARCHAR)) FROM '+@ORDERID+' WITH(NOLOCK)'
43 EXEC sp_executesql @LXH_SQLStr, N'@Curr_Count INTEGER OUT,@Curr_Len INTEGER OUT',@LXH_Count OUT, @LXH_Len OUT;
44
45 IF( PATINDEX('%[0-9]%',@ORDERID)=0)
46 INSERT INTO #tmp_Ret(TbName, TbRowCount,TbRowCountLen )
47 VALUES (@ORDERID,@LXH_Count,@LXH_Len);
48
49 -- 标识当前行已处理完毕
50 UPDATE #Temp_Lists SET DealFlg = 1 WHERE REFID = @REFID
51
52 -- 选择下一行号
53 SELECT @REFID = MIN(REFID) FROM #Temp_Lists WHERE DealFlg = 0 AND REFID > @REFID
54 END
55 SELECT * FROM #tmp_Ret WHERE TbRowCountLen IN(7,8,9,10,11,12) ORDER BY TbRowCountLen DESC,TbRowCount DESC,TbName
56
57 SELECT 'Num'=COUNT(*),TbRowCountLen FROM #tmp_Ret WHERE TbRowCountLen IN(7,8,9,10,11,12)
58 GROUP BY TbRowCountLen
59 ORDER BY TbRowCountLen DESC;
60 /*e━┅━┅━┅━┅━┅━┅━┅━┅━━┅━┅━┅━┅━┅━┅━┅━━┅━┅━┅━┅━┅━┅━┅━┅━━┅━┅━┅━┅━┅━┅━┅━*/