大家下午好——
我进行了相当多的搜索,发现了一些关于如何动态确定包含在 SQL .bak 文件中的逻辑数据文件名的好资源。我使用的 SMO 方法要求我传递 ServerName,但是我的要求要求将实际文件路径传递给备份。我可以在 T-SQL 中得到我需要的东西,但我真的很想确定一种利用 SMO 的方法。下面是 T-SQL,它为我提供了我需要的信息:
RESTORE FILELISTONLY
FROM N'C:\Directory\File.bak'
WITH FILE = 1
不幸的是 SqlRestore.ReadFileList(ServerName) 将不起作用,因为备份集尚未恢复到服务器。本质上我需要这些信息,所以我可以将它传递给Restore.RelocateFiles.Add。我实际上是一名刚刚涉足 C# 的 DBA,所以如果您需要更多信息,请告诉我,我会尽力填补空白。感谢您的帮助!