回答

收藏

提供行数和表名的脚本

技术问答 技术问答 242 人阅读 | 0 人回复 | 2023-09-14

也许您很容易地说我如何提供表名和行数?
0 Z% d+ _. P7 U& R1 {! J+ [! b  ]伪SQL:
9 }3 j* A0 K" r( I" G* [  C" Hfor "select tablename from system.Tables" into :tablename
# ~0 Z; e! d! Z$ M( {  execute "select count(*) from ? into ?" using :tablename, :count
0 c) L% Y, ?7 ?% ^( u: Z8 X1 v" F  return row(:tablename, :count)6 c" O/ o4 s9 N2 o1 F. l
end for
6 P0 g# t1 X5 A& N- S您能告诉我在T-SQL中显示此脚本吗?3 e  }0 I$ S) z
               
; b6 o  X. E0 B3 K! v! E- C解决方案:; ^5 l) ^" ~! z8 B
                - h; P8 J* i, ~! x1 e) M7 n

* U* Z$ v/ P: V/ T7 f, h9 h; S# [, Y. \, |7 `  r" x2 T( x2 s
                如果您使用的是SQL Server 2005或更高版本 (很遗憾,您没有指定要使用的SQL Server 版本* E, Z' Q* a3 N9 u0 P8 q( A) h- v7 O
),则此查询应为您提供以下信息:. U' \" A9 E& {; C4 i$ h
SELECT
7 z% c: j- f' {    TableName = t.NAME,
  e- T( i8 w" J  ]    TableSchema = s.Name,- C8 J, T! y& q5 F9 m
    RowCounts = p.rows
! ]- g2 S" J, T& X2 Z8 [$ _FROM
% P8 B& {9 i& h- v) G    sys.tables t
5 R8 U+ r7 X. G% V( bINNER JOIN
0 K4 G; u5 X1 _- K; Y0 Q    sys.schemas s ON t.schema_id = s.schema_id* Y" S3 J: ]* V* F" z% B1 j
INNER JOIN      7 s& }6 d) H0 b5 f
    sys.indexes i ON t.OBJECT_ID = i.object_id
6 Q6 v4 q/ p+ }  `$ S* ?INNER JOIN
$ y$ v; e1 z4 C  I8 a- ^' e( C0 X' ^+ A    sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
3 O  ?5 p+ f3 k4 V  V2 e* SWHERE
' p  V; X6 V/ X. t7 p9 o4 M9 @3 Y' a  h    t.is_ms_shipped = 0; G4 f! V3 R5 A3 V9 |
GROUP BY' n' ?/ f3 e, g
    t.NAME, s.Name, p.Rows/ \$ _" i/ P6 R$ D. F# \3 i
ORDER BY 3 v% ]7 ?! A3 A5 X& s$ [  A
    s.Name, t.Name
, X- I1 |' R+ J. o- y" \7 _产生的输出类似(来自AdventureWorks):
0 I9 v+ b+ g* PTableName       TableSchema      RowCounts# ~) `4 `0 ], d
AWBuildVersion    dbo                  1( F7 t8 i9 B; D0 G# r" W
DatabaseLog       dbo               15976 Q& r9 s& k5 l0 i$ E3 ?: E
ErrorLog          dbo                  0
  Q+ ]7 m) O/ E2 t+ P. d: n/ e& @, @Department        HumanResources      16
0 U- t; s/ R# f- NEmployee          HumanResources     290# I+ P4 z- }0 _2 U1 a
JobCandidate      HumanResources      13
) L3 O2 J2 f: ^9 u0 QAddress           Person           19614
0 W/ b) m' \# g3 aAddressType       Person               6
1 }. e% {% e- h' G2 F* |" ?& I: e... and so on......
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则