While Loop to Iterate through Databases

后端 未结 7 1291
暖寄归人
暖寄归人 2021-02-05 13:05

I was wondering if someone could help me with creating a while loop to iterate through several databases to obtain data from one table from two columns. this is was I have done

7条回答
  •  死守一世寂寞
    2021-02-05 13:30

    CREATE TABLE #T
    (dbname sysname NOT NULL PRIMARY KEY,
    SumPGCOUNT INT,
    CREATED DATETIME)
    
    DECLARE @Script NVARCHAR(MAX) = ''
    
    SELECT @Script = @Script + '
    
    USE ' + QUOTENAME(name) + '
    IF EXISTS(SELECT * FROM sys.tables WHERE OBJECT_ID=OBJECT_ID(''dbo.tbldoc''))
      INSERT INTO #T
      SELECT db_name() AS dbname, SUM(PGCOUNT) AS SumPGCOUNT, CREATED 
      FROM dbo.tbldoc
      GROUP BY CREATED;  
      '
    FROM sys.databases 
    WHERE state=0 AND user_access=0 and has_dbaccess(name) = 1
     AND [name] like 'z%' and create_date between '2010-10-17' and '2011-01-15'
    ORDER BY [name]
    
    IF (@@ROWCOUNT > 0)
     BEGIN
     --PRINT @Script
     EXEC (@Script)
     SELECT * FROM #T
     END
    
     DROP TABLE #T
    

提交回复
热议问题