Sco*_*ain 3 c# sql-server backup progress database-restore
我知道这很可能是一个简单的问题,但是当您从 SQL Management Studio 内部恢复数据库时,您可以使用统计信息设置更新间隔
RESTORE DATABASE [test] FROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\test.bak' WITH FILE = 1, NOUNLOAD, STATS = 10
Run Code Online (Sandbox Code Playgroud)
如果我想从 c# 内部执行该行代码,我将如何获得进度?目前我只是使用System.Data.SqlClient.SqlCommand.ExecuteNonQuery(),但我不知道如何获得进度。
另外,如果速度更快,使用 Microsoft.SQLServer 命名空间也是可以接受的。
在开始操作之前获取连接会话 ID:
SELECT @@SPID;
Run Code Online (Sandbox Code Playgroud)
然后开始您的备份请求。从不同的连接,查询sys.dm_exec_requests并查看执行恢复语句的会话的percent_complete:
以下命令的已完成工作百分比:
- 改变索引重组
- 带有 ALTER DATABASE 的 AUTO_SHRINK 选项
- 备份数据库
- 创建索引
- DBCC检查数据库
- DBCC 检查文件组
- DBCC 检查表
- DBCC 索引碎片整理
- DBCC 收缩数据库
- DBCC 收缩文件
- 终止 (Transact-SQL)
- 恢复数据库
- 更新统计数据。