2017-07-27 74 views
1

我已经备份了我的数据库。使用远程SQL Server上的C#从备份文件创建数据库

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

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

主要是我只能使用C#(而不是SQL Server Management Studio)来做到这一点。

回答

2

不幸的是没有任何直接的方法从本地备份文件远程恢复数据库。

但是,替代解决方案是在客户端和服务器都有权访问的某些地方(本地端或服务器端无关紧要)创建共享位置。 (更新:此外,确保将要执行恢复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,其中包含一个事务以获取文件内容作为输入参数,并将所有命令作为一个事务处理。

我希望能对你有所帮助:)。

+0

>没有任何直接的方式 Oooh废话。 – KamikyIT

+0

此外,请确保将要执行还原的SQL Server具有对要将备份复制到的目录的权限。 – KSib

+0

@KamikyIT我找到了一种新的方式并更新我的文章。让我知道如果不清楚:) –

相关问题