我正在尝试在 SQL Server 2005 中附加数据库,但出现以下错误:
=================================== 路径中有非法字符。(mscorlib) ------------------------------ 项目地点: 在 System.IO.Path.CheckInvalidPathChars (字符串路径) 在 System.IO.Path.GetFileName (字符串路径) 在 Microsoft.SqlServer.Management.SqlManagerUI.AttachDatabaseData.PrimaryFile.PopulateAssociatedFiles (字符串 primaryFilePath) 在 Microsoft.SqlServer.Management.SqlManagerUI.AttachDatabaseData.PrimaryFile.PopulatePrimaryFileData (字符串 primaryFilePath) 在 Microsoft.SqlServer.Management.SqlManagerUI.AttachDatabaseData.PrimaryFile..ctor(SqlManagementUserControl 父级、CDataContainer dc、String fullPath、String databaseOwner、ServerConnection connectionInfo) 在 Microsoft.SqlServer.Management.SqlManagerUI.AttachDatabase.IsSelectedFileValid(BrowseFolder dlg)
路径是“E:\Database\DB_Data.MDF”,所以应该没问题。我担心数据损坏。有什么方法可以深入查看文件并查看是否可以取出数据?
更新:数据已损坏。有什么方法可以检查单个分区或恢复部分数据吗?以下是 sp_attach_db 的结果:
消息 5120,级别 16,状态 5,第 1 行 无法打开物理文件“E:\Database\NationalDatabase_Log.LDF”。操作系统错误 2:“2(系统找不到指定的文件。)”。 消息 5120,级别 16,状态 5,第 1 行 无法打开物理文件“Ѐ”。操作系统错误 2:“2(系统找不到指定的文件。)”。 消息 5120,级别 16,状态 5,第 1 行 无法打开物理文件“ 䔀㨀尀䐀愀琀愀恋愀猀攀尀一愀琀椀漀渀愀氀䐀愀琀愀恋愀猀攀开䐀愀琀愀⸀䴀䐀䘀 ”。操作系统错误 2:“2(系统找不到指定的文件。)”。 消息 1813,级别 16,状态 2,第 1 行 无法打开新数据库“NationalDatabase”。CREATE DATABASE 已中止。
答案1
也许尝试运行 SQL Server 的存储过程来连接数据库:
从微软:
EXEC sp_attach_db @dbname = N'MyDatabase',
@filename1 = N'E:\Database\DB_Data.MDF',
@filename2 = N'E:\Database\DB_Data_log.LDF';