【发布时间】:2014-02-26 18:49:09
【问题描述】:
我的笔记本电脑装有 Windows 7,x64 位,并且是去年 12 月(2 个月前)制造的。它安装了 Microsoft Visual Studio 2010 和 SQL Server 2008 Express,但我之前没有在这台 PC 上使用过“Sql2008”。
SQL Server Management Studio一直在安装,我用它来连接我们公司的 SQL Server 实例。
现在,我需要对一个未返回我们预期数据的大型存储过程进行一些开发和调试。我得到了数据库 companyDB.bak 的备份,并将其移至我的 Win7x64 笔记本电脑的此文件夹中:C:\Temp\companyDB.bak。
我打开 SQL Server Management Studio 并选择 (local) 并点击“连接”:
一段时间后,我收到错误消息:
与 SQL Server 建立连接时出现与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)(Microsoft SQL Server,错误:2)
我做了一些研究,发现这个有用的链接:SQL SERVER – FIX : ERROR : (provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server) (Microsoft SQL Server, Error: )
他的第一步是确保 SQL Server 正在运行,看起来是这样:
接下来,它说要确保我使用的是 TCP/IP 端口 1433。当我查看时,似乎我的所有人都是空白的,所以我将它们更改为全部使用端口 1433,然后停止并重新启动服务:
好的,现在我可以启动本地实例了。
当我尝试使用“companyDB.bak”文件恢复数据库时,我收到一条错误消息,提示我要从中恢复的数据库比我保存到的数据库新:
System.Data.SqlClient.SqlError:数据库备份在运行版本 10.50.1600 的服务器上。该版本与运行版本 10.00.2531 的此服务器不兼容。在支持备份的服务器上恢复数据库,或者使用与该服务器兼容的备份。 (Microsoft.SqlServer.Smo)
所以,我从这里下载了 SQLEXPRWT_x64_ENU.exe:从这里:http://www.microsoft.com/en-us/download/details.aspx?id=30438
在安装过程中,我收到此错误消息,指出在删除“**SQL Server 2005 Express Tools”之前无法安装:
现在下面,如果你注意到的话,我搜索了我电脑下安装的项目,标题中唯一带有“2005”的是VC++ 2005 Redistributable:: p>
所以,我取消了安装并重新启动,这次选择了“从 SQL Server 2000、SQL Server 2005 或 SQL Server 2008 升级”选项,但我收到了同样的错误消息。
我似乎无法继续。
显然,我安装的一些应用程序需要 VC++ 2005 Redistributable,否则几个月前我不会安装它。
我该如何进行?
[更新]:
在 Davide Mauri 的 SQL Server 2008 R2 Installation and the Phantom of SQL Server 2005 Express 博客之后,我在日志文件“C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\yyyymmdd_hhmmss\Detail.txt”中搜索了术语 Sql2005SsmsExpressFacet。
它只指向一个注册表项(他指向两个):“”
Init rule target object: Microsoft.SqlServer.Configuration.SetupExtension.Sql2005SsmsExpressFacet
Sco: Attempting to create base registry key HKEY_LOCAL_MACHINE, machine
Sco: Attempting to open registry subkey
Sco: Attempting to open registry subkey SOFTWARE\Microsoft\Microsoft SQL Server\90\Tools\ShellSEM
Rule 'Sql2005SsmsExpressFacet' detection result: SQL 2005 Ssms EE installed=True
Evaluating rule : Sql2005SsmsExpressFacet
Rule running on machine: 5000-C6E8-1
Rule evaluation done : Failed
Rule evaluation message: The SQL Server 2005 Express Tools are installed. To continue, remove the SQL Server 2005 Express Tools.
但是,我的注册表甚至没有那个目录:
[更新 2]:
好的,所以我们的 IT 人员给了我完整的 SQL Server 2008 R2 CD 安装,但我仍然遇到同样的障碍,认为 SQL Server 2005 Express 工具 仍然安装 - 所以我无法继续前进。
【问题讨论】:
-
使用 express,实例名称始终为 SQLEXPRESS。现在,您无法将具有不同 SKU 或较新版本的 SQL Server 的数据库恢复到较低版本。这不是“错误”或任何东西。这是故意的,一直都是
-
你确定吗?我知道我之前已经在 SQL Server Express 上安装了一个 SQL Server 2000 数据库,我想说我已经使用 SQL Server 2008 之前也是。
-
使用 .bak 将较新版本的数据库恢复到较旧版本从来都不是可行的。您可以改为从较新的脚本中生成脚本并将兼容性设置为 2008,然后在较旧的脚本上运行这些脚本。这是唯一的方法。
-
@ahmed....默认实例名称是“SQLEXPRESS”..您可以覆盖它。
-
@granadaCoder - 确实如此。我是说默认情况下总是 SQLEXPRESS - 我应该更清楚。但 OOB 它是 SQLEXPRESS
标签: sql-server visual-studio-2010 sql-server-2008 tsql ssms