【问题标题】:Create database from backup file using C# on the remote SQL Server在远程 SQL Server 上使用 C# 从备份文件创建数据库
【发布时间】:2017-07-27 16:09:29
【问题描述】:

我已经备份了我的数据库。

在我的程序中编辑后,它是一个新的newDb.bak 文件(在我的电脑上)。

如果我有连接字符串(我知道 ip、登录名和密码),我如何在远程 SQL Server 上恢复这个新数据库?

主要是我只需要使用 C#(而不是 SQL Server Management Studio)来执行此操作。

【问题讨论】:

    标签: c# sql-server backup restore


    【解决方案1】:

    很遗憾没有任何直接的方法可以从本地备份文件远程恢复数据库。

    但另一种解决方案是在客户端和服务器都可以访问的某个位置(本地端或服务器端无关紧要)创建一个共享位置。 (更新:此外,请确保将执行还原的 SQL 服务器对您将备份复制到的目录具有权限。-@KSib) 然后从文件中恢复数据库:

    1. newDb.bak复制到\\serverip\$sharedfolder\newDb.bak上 服务器。
    2. RESTORE DATABASE YOURDB FROM DISK = N'\\serverip\$sharedfolder\newDb.bak';

    如果你愿意,我可以在C#分享恢复数据库的源代码。

    更新:另一种解决方案是创建一个包含varbinary列的表,通过SqlCommandSqlBulkCopy将备份文件内容从本地插入到它,然后导出文件内容通过bcp 发送到您服务器中的某个位置,如下所示:

    BCP "SELECT FileContent FROM createdTable WHERE ID = 1000" queryout "C:\newDB.bak" -T

    然后就可以轻松执行恢复命令了!

    您还可以创建一个包含事务的服务器端StoredProcedure,以获取文件内容作为输入参数并将所有命令作为一个事务执行。

    希望对你有所帮助:)。

    【讨论】:

    • > 没有任何直接的方法哦,废话。
    • 另外,请确保将执行还原的 SQL 服务器对您要将备份复制到的目录具有权限。
    • @KamikyIT 我找到了一种新方法并更新了我的帖子。如果不清楚,请告诉我:)
    • @KSib 我更新了我的答案,并将您的建议放入其中。问候。
    猜你喜欢
    • 2017-08-14
    • 2010-12-14
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多