最近几天从网上找了几个asp.net的登录案例想要研究研究代码,结果在用
sql Server2005附加数据库文件时弹出错误信息:如下图:
,一时无解,遂求助于百度谷歌,经过各种试验,特将解决办法整理于此,希望能帮到大家,同时如果有好的意见大家多多交流啊!
方案一:切换登录方式
出现这种情况是由于用“混合验证方式”(sql Server身份验证)登录数据库造成的,只要将登录方式改为“windows身份验证方式”
登录即可解决该问题,附加成功后再换用“混合验证模式”登陆就没问题了。
此方法经本人测试成功。
方案二:修改服务
选择 所有程序-sql Server 2005-配置工具-选择"sql Server Configuration Manager"或者“sql Server 配置管理器”,
打开“sql Server Configuration Manager”配置界面,在左侧选择"sql Server 2005 服务",在右侧右击打开“sql Server (sqlEXPRESS)” 的属性,在内置账户处将网络服务--”Network Service”改为本地系统--"Local System",
点击“重新启动”后再附加数据库就OK了。
此方法经本人测试成功。
附加数据库成功后如果担心改变设置后影响以后使用可以将内置账户处的“Local System”再改回
“Network Service”,数据库仍可打开。
主要配置过程如下图:
1.打开“sql Server Configuration Manager”配置界面:
2.选择sqlServer(sqlEXPRESS),选项,并右击:
3.选择“Local System”:
4.选择“重新启动”:
5.配置成功:
这样配置后附加数据库就不会出错了。
网上有人说:将数据库文件copy到其他文件夹后再附件可以附加上:
方法.具体的如下:我用现在的sql2005EXPRESS创建了一个数据库,然后把软件关闭,数据库服务也停止了,把拷回来的文件在其它的文件夹改了个名,改成和我创建的那个数据库一样的名称,日志文件也一样。然后拷贝到创建数据库的那个文件夹,用这个改了名的文件替换掉我创建的那个。开启数据库服务,打开软件,发现问题解决。。。。。所有的数据都可以使用了。
其它方法.首先要看下数据库版本号是否对得上,其次,mdf是要正常分离的才能附加,不可能正在使用的mdf也来附加的,直接用unlocker工具检测该文件被谁锁定了!!!
打开“sql Server 2005”,在只读的数据库上右击选择属性,选中属性窗口左侧"选择页"下面的"选项",在窗口右边将“数据库为只读”项
改为“False”,点击确定即可。
原因:之所以附加上的数据库为“只读”,是因为启动sql Server 的默认的启动账号“网络服务”对所附加(Attach)的数据库文件的
权限不够造成的。此方法经本人测试成功。
主要配置过程如图:
步骤一:
步骤二: