C#SQL将数据库还原到默认数据位置-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

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

保持可爱mmm 2019-11-18 15:42:59 39

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

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

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

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

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

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

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

问题来源于stack overflow

SQL 数据库 Windows
分享到
取消 提交回答
全部回答(1)
  • 保持可爱mmm
    2019-11-18 15:43:11

    我发现的是

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

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

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

    0 0
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题
推荐课程