【问题标题】:how to use TSQL syntax to restore .bak to new db? [closed]如何使用 TSQL 语法将 .bak 恢复到新数据库? [关闭]
【发布时间】:2013-09-28 18:57:22
【问题描述】:

我知道stackoverflow中有很多类似的问题,但没有一个完全满足我的要求?

1 - 我不想附加包含 2 个 .mdf .ldf 文件的数据库
2 - 该文件只是一个 .bak 文件
3 - 我不想使用 Microsoft SQL 管理。
4 - 我需要以编程方式完成?(在我的情况下是 c#)

【问题讨论】:

  • 这不是题外话,你看不到

标签: c# sql sql-server restore


【解决方案1】:

您可以通过发送 T-SQL 命令来恢复数据库(与发送 select 查询相同)。例如:

restore database NameOfYourDb
from    disk = 'c:\backups\NameOfYourDb.bak'
with    recovery,
        move 'NameOfYourDb_Data' to 'c:\data\NameOfYourDb.mdf',
        move 'NameOfYourDb_Log' to 'c:\data\NameOfYourDb.log'

两个是可以存储在 .bak 文件中的最小文件数。每个数据库至少有一个数据和一个日志文件(扩展名分别为 .mdf 和 .log。)

请注意,恢复是由 SQL Server 服务完成的。您必须从该服务的角度提供路径。运行 SQL Server 的帐户需要对 .bak 文件的读取权限以及对 .mdf 和 .log 文件的写入权限。

【讨论】:

  • 恢复到 .ldf 似乎也有效
【解决方案2】:

看看 .NET 库中的 SMO 对象。有一个还原对象here 可用于还原数据库。 SQL Server Management Studio 是使用此 SMO 对象构建的,因此您可以使用 SSMS 执行的任何操作都可以使用 C# 执行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多