无法在SQL Server 2012中创建数据库

时间:2014-07-24 09:36:10

标签: c# sql sql-server database

我最近在我的机器上安装了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查询时,它成功创建了数据库。

4 个答案:

答案 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界面进行设置。您只需要:

  1. 右键单击您的服务器名称(例如:(LocalDB)\v11.0
  2. 选择 属性
  3. 选择 数据库设置
  4. 使用有效的目录路径填充数据库默认位置的所有3个条目。 (定义前2条路径: Data Log 足以创建数据库。)

这将为您创建正确的注册表项,而无需触摸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时被删除。