gpt4 book ai didi

c# - 从 bak 文件中检索数据库名称

转载 作者:太空狗 更新时间:2023-10-29 22:24:35 25 4
gpt4 key购买 nike

我有一个包含数据库备份的 bak 文件。

我想将这个数据库恢复到一个新位置,我需要从这个文件中检索数据库名称,知道如何做吗?

我需要它来覆盖数据文件位置和日志文件位置。

感谢您的帮助。

最佳答案

RESTORE FILELISTONLY
FROM DISK = 'full path to your .bak file'

将显示备份中的当前文件名。如果一个文件中有多个备份并且您没有指定“WITH FILE = X”,您将只会获得文件中第一个备份的信息。

RESTORE DATABASE MyNewDBname
FROM DISK = 'full path to your .bak file'
WITH
MOVE 'LogicalFilename_Data' TO 'D:\somepath\...\MyDB.mdf',
MOVE 'LogicalFilename_Log' TO 'D:\somepath\...\MyDB.ldf';
GO

SMO 的粗略轮廓(未测试):

Restore restoreDB = new Restore();
restoreDB.Database = myDatabase.Name;
// Specify whether you want to restore database, files or log
restoreDB.Action = RestoreActionType.Database;
restoreDB.Devices.AddDevice(@"D:\somepath\...\MyDBFull.bak", DeviceType.File);

restoreDB.ReplaceDatabase = true; // will overwrite any existing DB
restoreDB.NoRecovery = true;

// you can Wire up events for progress monitoring */
// restoreDB.PercentComplete += CompletionStatus;
// restoreDB.Complete += RestoreCompleted;

restoreDB.SqlRestore(myServer);

Ref .

使用 SMO,您可以使用 Restore.ReadFileList 检索文件列表

另请参阅:How to restore a database from C#

关于c# - 从 bak 文件中检索数据库名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4176840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com