How to: Check SQL Process % Complete

The following scripts origin from Mehernosh to help you to find out (SQL Server 2005 and onwards or with compatibility modes of 90 and higher) how long a particular Backup or restore on a database was taking or elapsed time.

USE MASTER
GO
SELECT
	SESSION_ID,
	'[' + CAST(DATABASE_ID AS VARCHAR(10)) + '] ' + DB_NAME(DATABASE_ID) AS [DATABASE],
	PERCENT_COMPLETE, START_TIME, STATUS, COMMAND,
	DATEADD(MS, ESTIMATED_COMPLETION_TIME, GETDATE()) AS ESTIMATED_COMPLETION_TIME,
	CPU_TIME
FROM SYS.DM_EXEC_REQUESTS
--Apply this Where Clause Filter if you need to check specific events
--such as Backups, Restores, Index et al.
WHERE
	COMMAND LIKE '%BACKUP%' OR
	COMMAND LIKE '%RESTORE%' OR
	COMMAND LIKE '%INDEX%' OR
	COMMAND LIKE '%DBCC%'