我的数据库中有几个表 -命令 -OrderDetials -顾客 等
我需要计算每个表的行总数并将其组合在一个输出中 只有每个表的表名和行总数
有没有人可以帮我提一些建议,我一直在苦苦挣扎。
答案 0 :(得分:2)
对于SQL Server,这将比<{1}}更高效 FAR - 虽然根据系统上的音量更准确 - 但可能会非常高效(并且如果系统是易变的,那么当所有工会收集他们的信息时,计数就不准确了):
COUNT(*)
答案 1 :(得分:1)
您可以在Microsoft SQL Server 2008中执行类似的操作:
DECLARE @Tables TABLE
(
TableName VARCHAR(50),
RowCount INT
)
INSERT INTO @Tables
SELECT
'Customers',
COUNT(*) AS RowCount
FROM
Customers
INSERT INTO @Tables
SELECT
'Orders',
COUNT(*) AS RowCount
FROM
Orders
etc...
SELECT
*
FROM
@Tables
答案 2 :(得分:1)
我相信这样的事情会起作用:
SELECT 'Table 1 Name', count(column_to_sum) from table_1
UNION ALL
SELECT 'Table 2 Name', count(column_to_sum) from table_2
UNION ALL
SELECT 'Table 3 Name', count(column_to_sum) from table_3
UNION ALL
SELECT 'Table 4 Name', count(column_to_sum) from table_4
这里有docs on the UNION
command in MySQL的链接以获取更多信息。
答案 3 :(得分:0)
如果您使用SQL Server 2008 *并在所有表上都有聚簇索引,则可以执行以下查询:
select o.name, i.rowcnt
from sys.sysobjects o
join sys.sysindexes i
on i.id = o.id and i.indid = 1 -- only clustered indexes
where o.xtype='U' -- only objects of type 'User Table'
* )目前不清楚,从问号标签判断。