SQL Server:加载数据库文件

Shd*_*dNx 2 sql-server sql-server-2008

我正在使用SQL Server 2008.我应该能够"连接"到用户指定的数据库文件(mdf)(使用连接字符串的AttachDbFilename部分)并保存所选文件的副本.我还必须处理数据库的内容.

如果我做对了,一个mdf文件代表一个包含表,存储过程等的完整数据库.但是,如果我在不同文件夹中有两个同名文件(一个在SQL Server的DATA文件夹中,另一个在C :)的根,我尝试在C下加载文件:我收到一条错误,指出已存在具有该名称的数据库.

我在C:下重命名了该文件,但现在我收到一个错误:

"尝试打开或创建物理文件'C:/myDatabaseFile_log.ldf'时,CREATE FILE遇到操作系统错误5(无法检索此错误的文本.原因:15105).无法打开新数据库'C:/MYDATABASEFILE.MDF '.CREATE DATABASE被中止.尝试为文件'C:/myDatabaseFile.mdf'附加一个自动命名的数据库失败.存在一个同名的数据库或指定的文件无法打开,或者它位于UNC共享上."

请注意:我正在尝试打开数据库而不是尝试创建它.
那么我做错了什么?我误解了什么吗?这些数据库文件如何工作(我的意思是,如何使用它们)?

Joe*_*orn 5

您似乎认为数据库就像Word文档或文本文件一样,可以在应用程序实例中随意打开和关闭.这不是它的工作原理.

相反,通常只有一个数据库服务器程序实例(您可以安装多个实例,但它不像运行正常程序的两个副本).您可以更多地考虑它,就好像您的数据库必须在此服务器实例中注册,并且您只能注册一个具有服务器名称的数据库.当您附加到MDF文件时,从服务器的角度来看,会创建一个新数据库(执行CREATE DATABASE命令)并告诉他使用此MDF文件来获取模式和数据.

我建议你使用Sql Server Management Studio并连接到本地系统上运行的服务器.你可能会发现那里有一个你想要的名字的数据库.