我的应用程序安装Server programmatically.
我的代码是:
FileInfo mdf = new FileInfo(dbfile);
databasename = mdf.Name.ToLower().Replace(@".mdf", @"");
StringCollection databasefiles = new StringCollection();
databasefiles.Add(mdf.FullName);
databasefiles.Add(mdf.FullName.ToLower().Replace(@".ldf", @""));
//this is where I have issue. Obviously I can't assume that the log file name would be the same as mdf file name with ldf extension. Thats when I thought there would be a way to read the header information from mdf file, and that will have ldf information.
Server sqlServer = new Server(textServer.Text);
sqlServer.AttachDatabase(databasename, databasefiles);如何选择正确的.ldf文件。对于c:\temp中的示例,我有db1.mdf、db2.mdf和db1.ldf、db_1.ldf、db1_log.ldf。我如何知道哪个是db1.mdf的正确.ldf文件
发布于 2011-11-18 19:35:07
不,据我所知,在文件本身中,MDF和LDF文件之间没有真正的“链接”。Server内部的数据库元数据中有一个链接。
我的方法可能是:
mydatabase.ldf是否存在->如果是,使用mydatabase_log.ldf存在->如果是,使用mydatabase_1.ldf是否存在->如果是,使用F 210
如果您还没有找到您的LDF文件,您可能可以在MDF所在的目录中搜索mydatabase*.ldf。这将在我们的测试服务器上不幸地失败--我们的系统管理员总是将.MDF/.NDF数据文件安装到SQL2008-DATA中,将.LDF日志文件安装到SQL2008-LOG目录中--完全独立。
在这种情况下,您要么需要在配置文件中配置映射.MDF -> .LDF,要么只需向用户弹出一个“查找.LDF文件”对话框.
https://stackoverflow.com/questions/8188017
复制相似问题