DECLARE @SQL VARCHAR(1000)
DECLARE @DB sysname
--Creo un cursor para consultar el nombre de todas las bases de datos, excepto las de sistema
DECLARE curDB CURSOR FORWARD_ONLY STATIC FOR
SELECT [name]
FROM sys.databases
WHERE state = 0 AND Name NOT IN ('master','model','msdb','tempdb')
ORDER BY [name]
--Abro el cursor y por cada base ejecuto el stored procedure que actualiza las estadísticas
OPEN curDB
FETCH NEXT FROM curDB INTO @DB
WHILE @@FETCH_STATUS = 0
BEGIN
SET @SQL = 'USE [' + @DB +']' + CHAR(13) + 'EXEC sp_updatestats' + CHAR(13)
PRINT @SQL
EXEC (@SQL)
FETCH NEXT FROM curDB INTO @DB
END
--Cierro y elimino el cursor
CLOSE curDB
DEALLOCATE curDB