sql - 提供行计数和表名称的脚本

标签 sql sql-server

也许您轻松地说了如何提供表名称和行数?

伪 SQL:

for "select tablename from system.Tables" into :tablename
  execute "select count(*) from ? into ?" using :tablename, :count
  return row(:tablename, :count)
end for

你能告诉我用 T-SQL 向我展示这个脚本吗?

最佳答案

如果您使用的是 SQL Server 2005 或更高版本(遗憾的是,您没有指定您正在使用的 SQL Server 版本),则此查询应该为您提供该信息:

SELECT 
    TableName = t.NAME,
    TableSchema = s.Name,
    RowCounts = p.rows
FROM 
    sys.tables t
INNER JOIN 
    sys.schemas s ON t.schema_id = s.schema_id
INNER JOIN      
    sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN 
    sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
WHERE 
    t.is_ms_shipped = 0
GROUP BY
    t.NAME, s.Name, p.Rows
ORDER BY 
    s.Name, t.Name

这会产生类似的输出(来自 AdventureWorks):

TableName       TableSchema      RowCounts
AWBuildVersion    dbo                  1
DatabaseLog       dbo               1597
ErrorLog          dbo                  0
Department        HumanResources      16
Employee          HumanResources     290
JobCandidate      HumanResources      13
Address           Person           19614
AddressType       Person               6
... and so on......

关于sql - 提供行计数和表名称的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9954775/

相关文章:

c# - 首先在 Entity Framework 代码中使用搜索字符串搜索 DateTime

sql-server - OLE DB 命令中存储过程的 SSIS 返回值

sql-server - SQL Server 列的默认随机 10 个字符串值

sql - SELECT SQL 查询帮助

sql - 删除...创建与更改

php - 刷新迁移时出现外键约束错误 - Laravel

mysql - 如何从组中选择所有行,直到出现值

mysql - MYSQL中如何根据一定的数字创建表

mysql - 动态发送MySQL

mysql - 将几何图形从 MSSQL 导入 MySQL(线串)