【发布时间】:2017-02-08 15:18:04
【问题描述】:
我被要求为 4 个数据库中的每个表生成行计数,并将结果记录在第 5 个数据库中。
- Database_1 位于 Server_a 上
- Database_2 在 Server_b 上
- Database_3 位于 Server_c 上
- Database_4 在 Server_d 上
- Database_5 位于 Server_e 上
每个数据库 1 到 4 中的表列表完全相同。有时表列表会根据用户要求增加/减少,但所有 4 个数据库将完全相同
在需要结果的 Database_5 中,他们只需要一个包含以下字段的表:
DateRun (Date row count run), Table_Name, DB1, DB2, DB3, DB4
字段 DB1 到 DB4 是存储行计数结果的位置。
我知道如何链接服务器,我可以使用 sp_msforeachtable。但我只是不知道如何从一台服务器获取表列表到 Table_Name,然后将所有 4 个数据库的记录计数填充到字段 DB1、DB2、DB3 和 DB4 中
我猜第一个查询需要从 DB1 生成表和行计数列表并将其插入到 DB5 中。
然后从 DB2 中选择行计数并更新表名相同的 DB5.DB2。
接着是来自 DB3 的行计数,并更新 DB5.DB3,其中表名相同。
对 DB4 重复。
还是我都搞错了。
查询会在 DB5 上运行,还是需要在每台服务器上运行查询然后插入 DB5?我宁愿把所有东西都放在 DB5 上。
非常感谢任何帮助。
【问题讨论】:
标签: sql-server database sql-server-2012 linked-server rowcount