也许您轻松地说了如何提供表名称和行数?
伪 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/