Sql server 还原期间还原sqldatabase报表状态

Sql server 还原期间还原sqldatabase报表状态,sql-server,sql-server-2012,Sql Server,Sql Server 2012,有没有办法让Restore_Database命令在执行期间报告状态?我的数据库很小,我想将输出记录到文本文件中。我想我看到了一个绿色的状态栏,这不是我想要的。cmdlet上是否没有开关,或者是否没有跟踪powershell端状态的方法 Restore-SqlDatabase -ServerInstance "MyServer" -Database "TestDB" -ReplaceDatabase -BackupFile "C:\Temp\W007808\TestDB\MyServer_Tes

有没有办法让Restore_Database命令在执行期间报告状态?我的数据库很小,我想将输出记录到文本文件中。我想我看到了一个绿色的状态栏,这不是我想要的。cmdlet上是否没有开关,或者是否没有跟踪powershell端状态的方法

Restore-SqlDatabase  -ServerInstance "MyServer" -Database "TestDB" -ReplaceDatabase -BackupFile "C:\Temp\W007808\TestDB\MyServer_TestDB_20161009_013101.bak"

您可以使用以下查询来监视sql恢复和备份操作

SELECT percent_complete, *
FROM sys.dm_exec_requests
WHERE command In ( 'RESTORE DATABASE', 'BACKUP DATABASE' )

有关详细信息,请参见

您可以使用以下查询来监视sql还原和备份操作

SELECT percent_complete, *
FROM sys.dm_exec_requests
WHERE command In ( 'RESTORE DATABASE', 'BACKUP DATABASE' )

有关更多详细信息,请访问

以下是我们使用的:

SELECT r.session_id,r.command,CONVERT(NUMERIC(6,2),r.percent_complete)
AS [Percent Complete],CONVERT(VARCHAR(20),DATEADD(ms,r.estimated_completion_time,GetDate()),20) AS [ETA Completion Time],
CONVERT(NUMERIC(10,2),r.total_elapsed_time/1000.0/60.0) AS [Elapsed Min],
CONVERT(NUMERIC(10,2),r.estimated_completion_time/1000.0/60.0) AS [ETA Min],
CONVERT(NUMERIC(10,2),r.estimated_completion_time/1000.0/60.0/60.0) AS [ETA Hours],
CONVERT(VARCHAR(1000),(SELECT SUBSTRING(text,r.statement_start_offset/2,
CASE WHEN r.statement_end_offset = -1 THEN 1000 ELSE (r.statement_end_offset-r.statement_start_offset)/2 END)
FROM sys.dm_exec_sql_text(sql_handle)))
FROM sys.dm_exec_requests r WHERE command IN ('RESTORE DATABASE','BACKUP DATABASE')
我刚刚看到你关于希望在powershell中使用它的评论。

以下是我们使用的:

SELECT r.session_id,r.command,CONVERT(NUMERIC(6,2),r.percent_complete)
AS [Percent Complete],CONVERT(VARCHAR(20),DATEADD(ms,r.estimated_completion_time,GetDate()),20) AS [ETA Completion Time],
CONVERT(NUMERIC(10,2),r.total_elapsed_time/1000.0/60.0) AS [Elapsed Min],
CONVERT(NUMERIC(10,2),r.estimated_completion_time/1000.0/60.0) AS [ETA Min],
CONVERT(NUMERIC(10,2),r.estimated_completion_time/1000.0/60.0/60.0) AS [ETA Hours],
CONVERT(VARCHAR(1000),(SELECT SUBSTRING(text,r.statement_start_offset/2,
CASE WHEN r.statement_end_offset = -1 THEN 1000 ELSE (r.statement_end_offset-r.statement_start_offset)/2 END)
FROM sys.dm_exec_sql_text(sql_handle)))
FROM sys.dm_exec_requests r WHERE command IN ('RESTORE DATABASE','BACKUP DATABASE')
我刚刚看到你关于希望在powershell中使用它的评论。

这很有趣。我正在寻找命令中内置的电源外壳。如果我阅读您的响应,我猜restoresqldatabase命令没有提供状态功能。这很有趣。我正在寻找命令中内置的电源外壳。如果我阅读了您的响应,我猜restoresqldatabase命令没有为status提供任何功能。