Sql server 使用sp_MSforeachtable时出现语法错误

Sql server 使用sp_MSforeachtable时出现语法错误,sql-server,tsql,sql-server-2000,Sql Server,Tsql,Sql Server 2000,我计划在SQLServer2000中获取所有表及其总行数 为此,我: sp_msforeachtable 'select count(*) from ?' 在此列中未提及标题,因为它无法区分行计数属于哪个表 为此,我修改了以下内容: sp_msforeachtable 'select count(*) as ? from ?' 但它抛出了一个错误: Msg 170, Level 15, State 1, Line 1 Line 1: Incorrect syntax near '.'.

我计划在SQLServer2000中获取所有表及其总行数

为此,我:

sp_msforeachtable 'select count(*) from ?' 
在此列中未提及标题,因为它无法区分行计数属于哪个表

为此,我修改了以下内容:

sp_msforeachtable 'select count(*) as ? from ?' 
但它抛出了一个错误:

Msg 170, Level 15, State 1, Line 1
Line 1: Incorrect syntax near '.'.
请您对此进行指导

试试这个:

SELECT
    sysobjects.Name, sysindexes.Rows
FROM
    sysobjects
    INNER JOIN sysindexes
    ON sysobjects.id = sysindexes.id
WHERE
    type = 'U'
    AND sysindexes.IndId < 2
试试这个:

SELECT
    sysobjects.Name, sysindexes.Rows
FROM
    sysobjects
    INNER JOIN sysindexes
    ON sysobjects.id = sysindexes.id
WHERE
    type = 'U'
    AND sysindexes.IndId < 2
我想我明白了:

exec sp_MSforeachtable 'select count(*) as nr_of_rows, ''?'' 
  as table_name from ?'
我想我明白了:

exec sp_MSforeachtable 'select count(*) as nr_of_rows, ''?'' 
  as table_name from ?'
请尝试以下方法:

sp_MSforeachtable 'select ''?'' Tablename, count(*) ''Rows'' from ?'
请尝试以下方法:

sp_MSforeachtable 'select ''?'' Tablename, count(*) ''Rows'' from ?'

sysindexes.IndId<2是什么意思&为什么?仅适用于包含所有表的堆和聚集索引?没有索引甚至主键的表?是的,它们将被包含在Toolook中,就像它不是实时的一样,但可以这样做:不确定这会如何影响性能!sysindexes.IndId<2是什么意思&为什么?仅适用于包含所有表的堆和聚集索引?没有索引甚至主键的表?是的,它们将被包含在Toolook中,就像它不是实时的一样,但可以这样做:不确定这会如何影响性能!它帮助我一次更新所有表的统计信息,如:EXEC sp_MSforeachtable'updatestatistics?全扫描';它帮助我一次更新所有表的统计信息,如:EXEC sp_MSforeachtable'updatestatistics?全扫描';