-5

标题可能有点混乱,所以我将详细解释我的问题,所以请在你们所有人快速关闭这个问题之前阅读所有这些内容作为副本。

我遇到了两个问题,一个是我不知道如何为 Microsoft SQL SMS 制作服务器。当我启动它时,我不知道在连接中输入什么内容,因为当我尝试为服务器名称做一个简单的 localhost 时,它给了我一个错误。所有在线教程的行为就像我应该已经知道该做什么,所以跳过它而不解释如何设置服务器。

现在我知道它是一个用于数据库的服务器管理工​​具,但我从我的主管那里收到了一个 .bak 文件,其中包含所有数据大纲和所有好东西。

所以我非常想知道如何获取这个 .bak 文件并以某种方式创建服务器或其他东西,以便我可以使用这些数据。如果不清楚,我非常愿意对此进行扩展。我意识到我的问题不是很清楚,人们很快就将其关闭,声称它与其他问题相同。

4

1 回答 1

7

您需要安装一个 SQL Server 实例(我不清楚您是否已经这样做了)。您可以使用免费的SQL Server Express Edition ,除非

  • 数据文件消耗超过 10GB
  • 数据库使用需要更高 SKU(标准/企业)的功能

我们不知道这些条件中的任何一个是否为真。如果是这样,那么您可以花大约 50 美元购买开发者版(随意货比三家),假设您不打算在服务器上安装它并在生产中使用它。

我建议使用 SQL Server 2012 只是因为它是受支持的最新版本。您可以选择使用 SQL Server 2008 或任何其他版本,但与您获得的此备份文件兼容的最佳机会是,如果您将其还原到更高或等于备份它的版本.

此站点不是安装 SQL Server 实例的分步说明的地方(您可以在其他地方找到这些说明)。安装 SQL Server 实例后,您需要了解数据库的外观。通常,您的备份文件将在数据库本身安装在与您自己的计算机不匹配的物理文件夹中的服务器上创建。所以我建议要么通过检查这个查询的输出来找出默认路径(它告诉你master数据文件的位置):

SELECT physical_name FROM sys.master_files
  WHERE database_id = 1 AND [file_id] = 1;

或者创建一个名为 的非常简单的文件夹c:\databases\,赋予Everyone帐户修改权限。

然后运行以下命令(下面我假设备份在 c:\databases\ 中,这是您想要数据文件的位置;如果不同,请相应调整):

RESTORE FILELISTONLY FROM DISK = 'c:\databases\whatever.bak';

这将返回一个结果集,如:

LogicalName    PhysicalName
-------------  ------------
Whatever       C:\...\whatever.mdf
Whatever_log   C:\...\whatever_log.ldf

您需要RESTORE DATABASE根据上面的结果构建类似以下的命令:

RESTORE DATABASE foo FROM DISK = 'c:\databases\whatever.bak'
  WITH MOVE 'Whatever'     TO 'c:\databses\whatever.mdf',
       MOVE 'Whatever_log' TO 'c:\databases\whatever_log.ldf';

现在您可以使用 Management Studio 连接到数据库。您在连接对话框中指定的服务器名称将取决于您安装的 SQL Server 版本,以及您使用的是命名实例还是默认实例。您可以通过查看服务小程序(控制面板 > 管理工具)来判断它是否是命名实例。在那里,您应该会看到至少一个 , 的实例SQL Server,其后面将是(MSSQLServer)(InstanceNameYouChose)。这里我有三个 SQL Server 命名实例(命名实例是 SQL2005、SQL2008 和 SQL2012):

在此处输入图像描述

如果您有一个命名实例,那么您将在 Management Studio 中使用以下命令进行连接:

.\InstanceNameYouChose

例如,要连接到我的 SQL2008 实例,我会说:

.\SQL2008
or
ServerName\SQL2008
or
(local)\SQL2008
or
LOCALHOST\SQL2008
or
127.0.0.1\SQL2008
etc. etc.

如果您有一个默认实例,那么您不需要斜杠和随后的名称,它只是:

.
or
ServerName
or
(local)
or
LOCALHOST
or
127.0.0.1
etc. etc.
于 2012-06-07T14:55:49.207 回答