![](/img/trans.png)
[英]C# SQL Server backup of a remote database to the remote default backup location without direct access to the remote location?
[英]Create database from backup file using C# on the remote SQL Server
我已经备份了数据库。
在程序中对其进行编辑后,它是一个新的newDb.bak
文件(在我的PC上)。
如果我有连接字符串(我知道ip,登录名和密码),如何在远程SQL Server上还原此新数据库?
主要是我必须仅使用C#(而不是SQL Server Management Studio)来执行此操作。
不幸的是,没有任何直接方法可以从本地备份文件远程还原数据库。
但是另一种解决方案是在某些位置(无论本地端还是服务器端)共享客户端和服务器都可以访问的位置。 ( 更新:另外,请确保将要执行还原的SQL Server具有将备份复制到的目录的权限。– @KSib)然后从file还原数据库:
newDb.bak
复制到服务器上的\\\\serverip\\$sharedfolder\\newDb.bak
。 RESTORE DATABASE YOURDB FROM DISK = N'\\\\serverip\\$sharedfolder\\newDb.bak';
如果您愿意,我可以在C#
共享恢复数据库的源代码。
更新 :另一个解决方案是创建一个包含varbinary
列的表,通过SqlCommand
或SqlBulkCopy
将备份文件的内容从本地插入到其中,然后通过bcp
将文件内容导出到服务器中的某些位置,例如:
BCP "SELECT FileContent FROM createdTable WHERE ID = 1000" queryout "C:\\newDB.bak" -T
然后,您可以轻松执行restore命令!
您还可以创建一个包含事务的服务器端StoredProcedure
,以将文件内容作为输入参数并将所有命令作为一个事务执行。
希望对您有所帮助:)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.