我最近在我的机器上安装了SQL Server 2012。当我尝试通过右键单击Databases
并选择New Database
在SSMS中创建数据库时,它会提示我输入各种项目以创建数据库。输入数据库名称并单击“确定”后,我得到一个例外:
“为数据库'aaaa'创建失败。(Microsoft.SqlServer.Smo)
其他信息:
执行Transact-SQL语句或批处理时发生异常。 (Microsoft.SqlServer.ConnectionInfo)
发生了文件激活错误。物理文件名'aaaa.mdf'可能不正确。诊断并更正其他错误,然后重试该操作。 CREATE DATABASE失败。无法创建列出的某些文件名。检查相关错误。 (Microsoft SQL Server,错误:5105)“
问题似乎只出现在向导中,因为当我执行Create Database
查询时,它成功创建了数据库。
答案 0 :(得分:3)
我发现当从向导创建数据库时,将在路径列中提供文件路径。如果默认为空,则表示数据库设置中没有指定路径。
在对象资源管理器中,右键单击服务器,然后单击“属性”。 在左侧面板中,单击“数据库设置”页面。 在“数据库默认位置”中,查看新数据文件和新日志文件的当前默认位置。要更改默认位置,请在“数据”或“日志”字段中输入新的默认路径名称,或单击“浏览”按钮查找并选择路径名称。
我们可以在创建数据库时更改文件路径。
答案 1 :(得分:1)
实际的数据库文件权限设置为read_only,请尝试取消选中文件权限的read_only复选框。
答案 2 :(得分:1)
我也有这个问题,我可以在这个link中我已经在此路径中的regedit中创建了任何字符串值(DefaultData和DefaultLog):HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ MSSQLServer \ MSSQLServer。 在这个"字符串值"您必须放置SQL数据和日志必须保留的路径。
答案 3 :(得分:0)
您意识到,在网格视图中,每个文件( .mdf 和 .ldf )。
此设置为<default>
。
在服务器第一次使用时,可能未设置此默认路径,因此无法计算新数据库的完整路径。
基于this article,您可以通过SSMS界面进行设置。您只需要:
(LocalDB)\v11.0
)这将为您创建正确的注册表项,而无需触摸regedit.exe。
安装时建议的位置:
C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data
或系统数据库的位置:
C:\Users\[UserName]\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\v11.0
对于非系统数据库,更好的选择是:
C:\Users\[UserName]\My Documents\Databases
C:\Users\[UserName]\My Documents\SQL Server Management Studio\Databases
注1:[UserName]
可以是“ Public
”以使其成为通用数据(如果这会导致数据库的多个副本,请更正我,但我认为它会赢't)。
注2:我不知道后者是否在卸载SSMS时被删除。