【问题标题】:SQL get table row count for specific table in DBSQL获取数据库中特定表的表行数
【发布时间】:2012-02-14 13:55:11
【问题描述】:

如何遍历我的所有数据库并获取每个员工表的行数? 每个客户都有自己的数据库,需要找到每个数据库中的员工总数。

一直在研究如何使用sp_MSforeachdb

sp_MSforeachdb 
@command1 = 'select count(*) from employee'

可以在单独的表中输出,也可以在一个带有数据库名称的表中输出。

【问题讨论】:

  • 几乎所有的数据库都是一样的,只有一个不同,没有员工表。

标签: sql count sp-msforeachdb


【解决方案1】:

怎么样

    DECLARE @sql nvarchar(1000)
    SET @sql = 'Use [?];'
      + 'IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = ''dbo'' AND  TABLE_NAME = ''employee''))'
      + ' BEGIN'
      + ' SELECT COUNT(*) from [employee]'
      + ' END'
   exec sp_MSforeachDB @sql

TABLE_SCHEMA = ''dbo'' 在大多数情况下在这里是可选的...

【讨论】:

【解决方案2】:

你需要告诉它首先使用哪个数据库(在?):

EXEC sp_MSforeachdb
@command1='use ?; select count(*) from employee'  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-02
    • 1970-01-01
    • 2017-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多