SQL从多个数据库计数并使用数据库名称插入

问题描述 投票:0回答:0

尝试从多个数据库进行计数(我能够做到),但我希望将计数结果放在数据库名称附近的表中。

我的最终结果是:

数据库名称 unarchived_measurements
hdb1 10
hdb2 14
hdb3 9

代码:

DECLARE @DT datetime = DATEADD(hour, -3, GETUTCDATE())
DECLARE @DbName VARCHAR(64)
DECLARE @unarchived_measurements_count TABLE (DbName VARCHAR(64), unarchived_measurements INT)

INSERT INTO @unarchived_measurements_count (DbName) 
    SELECT name 
    FROM sys.databases 
    WHERE name LIKE 'H%'

DECLARE db_cursor CURSOR FOR 
    SELECT DbName FROM @unarchived_measurements_count

OPEN db_cursor  
FETCH NEXT FROM db_cursor INTO @DbName  

WHILE @@FETCH_STATUS = 0
BEGIN 
    EXEC (
        'select count(*) as unarchived_measurements' 
        + ' FROM ' + @DbName + '.dbo.measurements' 
        + ' WHERE date < DATEADD(hour, -3, GETUTCDATE()) and processing_stage = 200'
        )

    FETCH NEXT FROM db_cursor INTO @DbName 
END 

CLOSE db_cursor  
DEALLOCATE db_cursor 

SELECT * FROM @unarchived_measurements_count

谢谢

我尝试使用插入语句,但这只是添加新行。我尝试更新,但一直出现错误。

sql multiple-tables
© www.soinside.com 2019 - 2024. All rights reserved.