更新SQL Server实例中所有数据库表的统计信息

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
DECLARE @sql nvarchar(300)
  
DECLARE UpdateStatsForAllDBs CURSOR
READ_ONLY
FOR select name from sysdatabases
  
DECLARE @name nvarchar(255)
OPEN UpdateStatsForAllDBs
  
FETCH NEXT FROM UpdateStatsForAllDBs INTO @name
WHILE (@@fetch_status <> -1)
BEGIN
    IF (@@fetch_status <> -2)
    BEGIN
        SET @sql = N'EXEC ' + QUOTENAME(@name) + N'.sys.sp_updatestats'
        EXEC sp_executesql @sql
    END
    FETCH NEXT FROM UpdateStatsForAllDBs INTO @name
END
  
CLOSE UpdateStatsForAllDBs
DEALLOCATE UpdateStatsForAllDBs
GO