开发者社区> 问答> 正文

C#SQL将数据库还原到默认数据位置

我正在编写一个C#应用程序,该程序通过FTP下载压缩的数据库备份。然后,应用程序需要提取备份并将其还原到默认数据库位置。

我不知道将在运行该应用程序的计算机上安装哪个版本的SQL Server。因此,我需要根据实例名称(在配置文件中)找到默认位置。

我发现所有示例均具有读取的注册表项,但这将不起作用,因为这假定仅安装了一个SQL实例。

我发现的另一个示例创建了一个数据库,读取了该数据库的文件属性,并在完成后删除了该数据库。那太麻烦了。

我确实在.NET框架中找到了应该起作用的东西,即:

Microsoft.SqlServer.Management.Smo.Server(ServerName).Settings.DefaultFile 问题在于这将返回空字符串,这无济于事。

我还需要找出运行SQL服务的NT帐户,以便一旦提取了该文件,便可以授予该用户对该备份文件的读取权限。

问题来源于stack overflow

展开
收起
保持可爱mmm 2019-11-18 15:42:59 705 0
1 条回答
写回答
取消 提交回答
  • 我发现的是

    Microsoft.SqlServer.Management.Smo.Server(ServerName).Settings.DefaultFile 仅当没有明确定义的路径时,才返回非空值。一旦指定的路径不是默认路径,此函数将正确返回该路径。

    因此,一种简单的解决方法是检查此函数是否返回字符串或null。如果返回字符串,则使用该字符串,但如果为null,则使用

    Microsoft.SqlServer.Management.Smo.Server(ServerName).Information.RootDirectory + "\DATA\"

    2019-11-18 15:43:11
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载
超大型金融机构国产数据库全面迁移成功实践 立即下载