基本上我正在使用ASP.NET MVC4开发一个网站,在创建模型时,我需要首先建立与数据库的连接
当我选择数据库名称7CH3LM1
时(下拉列表中的默认值),它说:
无法连接到数据库
但是当我写作7CH3LM1\SQLEXPRESS
时,它让我通过
这让我想起了一个问题:背后的真正区别是什么? 7CH3LM1
的含义是什么?添加SQLEXPRESS
是什么意思?
非常欢迎任何想法!
答案 0 :(得分:5)
7CH3LM1
是您的计算机名称,它有助于识别您要连接的SQL Server的实例。在这种情况下,您将连接到运行Express Edition的SQL Server的命名实例,其实例名称为SQLEXPRESS
。一台机器可以同时运行多个SQL Server实例,它可以有一个默认实例和0,1个或多个命名实例。要连接到默认实例,您将使用7CH3LM1
,并且要连接到命名实例,您将使用7CH3LM1\<instance name>
,就像使用7CH3LM1\SQLEXPRESS
一样。
我通常会将我的机器重命名为更令人难忘和有意义的东西,因为这可以使事情变得更容易,但那只是我。
SQL Server的实例可以包含许多数据库。您也可以在连接字符串中指定数据库(推荐),或者您可以依赖登录的默认数据库来定义初始上下文(不推荐,因为该数据库可能是脱机,单用户,分离等等 - 这会影响你登录的能力。)
最终,您的软件需要实例和数据库才能读取/写入数据。
答案 1 :(得分:1)
您正在谈论的是INSTANCE名称。多台SQL服务器实例可以存在于同一台机器上。如果未指定实例,则将连接到计算机上的SQL Server的DEFAULT实例(可能存在也可能不存在。)当您指定一个(在“\”之后)时,它被称为NAMED实例。
您可以在此处详细了解实例:msdn.microsoft.com/en-us/library/hh231298.aspx
总之,在MSSQL服务器上选择实例的语法表示为
SERVERNAME\INSTANCENAME
或DEFAULT实例:
SERVERNAME
而且,就个人而言,我认为SQL 2000的文档更容易阅读有关DEFAULT与NAMED实例的内容。您可以在此处找到它们:http://msdn.microsoft.com/en-us/library/aa174516(v=sql.80).aspx