我正在尝试为连接创建数据字典。我需要找出每张桌子的大小。我可以导出所有表的列表并计算单个表的记录。代码示例:
proc sql;
connect to odbc as sql1 (dsn=EDWQA user=XXXX pw=XXXX readbuff=300 );
create table list4
as
select * from connection to sql1
(odbc::SQLTables);
create table list4
as
select * from connection to sql1
(select count(*) from ACCTLOAD.T_STG_IVR_LCIG_PLN1);
quit;
我希望每个表的导出都包含每行的行数。任何帮助将不胜感激。
答案 0 :(得分:0)
可能不希望select count(*)
为数据库中的每个表执行此操作 - 您的DBA可能不会欣赏它。更好的查询是了解您要连接的主机(未提及)并直接对其执行元数据查询。
proc sql;
connect to odbc . . .;
create table table_names_and_row_counts as
from connection to obdc (
select tablename, rowcount from
*host DB meta query*
);
主机数据库元查询因db而异。对于SQL Server,请参阅Stackoverflow Script that provides the row counts and table names答案,该答案显示加入sys.
表格tables
,schemas
,indexes
,partitions