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共享上."
请注意:我正在尝试打开数据库而不是尝试创建它.
那么我做错了什么?我误解了什么吗?这些数据库文件如何工作(我的意思是,如何使用它们)?
您似乎认为数据库就像Word文档或文本文件一样,可以在应用程序实例中随意打开和关闭.这不是它的工作原理.
相反,通常只有一个数据库服务器程序实例(您可以安装多个实例,但它不像运行正常程序的两个副本).您可以更多地考虑它,就好像您的数据库必须在此服务器实例中注册,并且您只能注册一个具有服务器名称的数据库.当您附加到MDF文件时,从服务器的角度来看,会创建一个新数据库(执行CREATE DATABASE命令)并告诉他使用此MDF文件来获取模式和数据.
我建议你使用Sql Server Management Studio并连接到本地系统上运行的服务器.你可能会发现那里有一个你想要的名字的数据库.
| 归档时间: |
|
| 查看次数: |
15446 次 |
| 最近记录: |