从多个数据库的某个表中获取行数

乔·维克多(Joao Victor)

我需要知道存在(或不存在)多个基数的某个表的行数。

这是我附带的:

DECLARE @NomeBase as char(60)
declare @base as char(100)
declare @select as char(1000)

DECLARE CBases CURSOR FOR  select databasename from sig_orgao_web
 --gets all my databases
OPEN CBases
FETCH NEXT FROM CBases INTO  @NomeBase 

WHILE (@@FETCH_STATUS = 0)
  BEGIN           
    set @base =rtrim(@NomeBase) + '.dbo.sia_pais' -- database.dbo.table format
    select @base
    set @select = 'SELECT cast(  count(*) as char(70)) from ' + @base 
    exec (@select)

    FETCH NEXT FROM CBases INTO  @NomeBase
  END
CLOSE CBases
DEALLOCATE CBases

我知道表名必须是静态的,所以我要动态地创建选择语句。结果是这样的:

SIIG_DAT_DESENV.dbo.sia_pais    
13
SIIG_DAT_HOMOLOGACAO.dbo.sia_pais
13

并继续下去。

问题是,如果该表在我的数据库中不存在,或者在Management Studio上运行此脚本的用户无法访问某个数据库,则将引发错误。

有一个更好的方法吗?

格威

在每次迭代中检查对象是否存在:

set @select = 'IF Object_ID(''' + @base + ''') IS NOT NULL BEGIN SELECT cast(  count(*) as char(70)) from ' + @base + ' END'

如果要检查每个数据库,则应尝试使用此漂亮的单行代码:

EXEC sp_msForEachDB 'IF Object_ID(''[?].dbo.sia_pais'') IS NOT NULL BEGIN SELECT Count(*) FROM [?].dbo.sia_pais END';

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Django中从具有相同表名的多个数据库获取数据

SQL Server:如何计算多个数据库中的行数并在 1 个表中输出

从数据库中获取多个数据(左右)

获取Postgres数据库中每个表的行数

从Django中的多个数据库表返回结果

基于多个数据库和表的ER图,这些数据库和表从其他表的列值中获取名称

如何找出哪些SQL查询以编程方式利用某个数据库中的表?

在C#中运行SQL脚本到某个数据库或表?

T-SQL中的条件查询,用于从多个数据库和表中获取记录

如何在codeigniter的一行数据库中插入多个数组?

从多个数据库中查找多个数据

比较实例中每个数据库的两个表的行数

如何从数据库的多个表中获取公共列?

从mysql数据库多个表中获取最新记录

如何从php中的一个数据库中的两个不同表中获取多个数据

蒸气中的多个数据库

从多个数据库中的多个表中删除一行

显示来自多个数据库表的数据

熊猫数据框多个数据库表

在一个表中显示多个数据库表

如何从ASP.NET WebAPI MVC中的多个数据库获取数据

如何仅通过一个查询从mysql数据库中获取多个数据?

如何在Android的Firebase数据库中从uid获取/检索多个数据?

从数据库中的单个单元格获取多个数据

并发保存多个数据时如何从数据库中获取值

如何使用Flutter SQFlite获取数据库表中的行数

如何从SQL Server数据库的表中删除或更改多个数据库的默认约束?

从数据库中的表获取数据

Laravel:从另一个数据库表中获取数据