Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在远程SQL Server上使用C从备份文件创建数据库_C#_Sql Server_Backup_Restore - Fatal编程技术网

C# 在远程SQL Server上使用C从备份文件创建数据库

C# 在远程SQL Server上使用C从备份文件创建数据库,c#,sql-server,backup,restore,C#,Sql Server,Backup,Restore,我有数据库的备份 在我的程序中编辑后,它在我的电脑上是一个新的newDb.bak文件 如果我有我知道的ip、登录名和密码的连接字符串,如何在远程SQL Server上恢复此新数据库 主要是我只能使用C语言而不是SQL Server Management Studio来执行此操作。不幸的是,没有任何直接的方法可以从本地备份文件远程恢复数据库 但是,另一种解决方案是在本地端或服务器端创建一个共享位置,无论客户端和服务器都可以访问该位置。 更新:另外,请确保将执行还原的SQL server对要将备份复

我有数据库的备份

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

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

主要是我只能使用C语言而不是SQL Server Management Studio来执行此操作。

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

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

将newDb.bak复制到服务器上的\\serverip\$sharedfolder\newDb.bak 服务器 从磁盘还原数据库YOURDB=N'\\serverip\$sharedfolder\newDb.bak'; 如果你愿意,我可以用C语言共享恢复数据库的源代码

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

BCP从createdTable中选择FileContent,其中ID=1000查询C:\newDB.bak-T

然后您就可以轻松地执行restore命令了

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


我希望能对您有所帮助:。

>没有任何直接的方法。另外,请确保将执行还原的SQL server对您将备份复制到的目录具有权限。@KamikyIT我找到了一种新方法并更新了我的帖子。如果不清楚,请告诉我:@KSib我更新了我的答案,并将您的建议加入其中。当做