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

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

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