如何将一个SQL数据文件导入到SQL Server中?

70

我有一个.sql文件,想将其导入到SQL Server 2008中。正确的方法是什么?


导入的意思是什么?您想针对数据库运行.sql文件中的查询吗? - Barry Jordan
它有一堆表格,我想在网站上使用。 - Amen Ra
8个回答

116

如果您的文件是一个大文件,大小在50MB以上,我建议您使用sqlcmd,这是随SQL Server捆绑的命令行实用程序。它易于使用,并且可以处理大型文件。昨天我尝试使用以下命令处理了一个22GB的文件:

sqlcmd -S SERVERNAME\INSTANCE_NAME -i C:\path\mysqlfile.sql -o C:\path\output_file.txt

上面的命令假定您的服务器名称为 SERVERNAME,您的 SQL Server 安装使用实例名称 INSTANCE_NAME,并且 Windows 身份验证是默认的身份验证方法。执行后,output.txt 文件将包含以下类似内容:

...
(1 rows affected)
Processed 100 total records

(1 rows affected)
Processed 200 total records

(1 rows affected)
Processed 300 total records
...

如果您需要查看大文件的内容,请使用readfileonline.com。

更新

此链接提供更多命令行选项和详细信息,例如用户名和密码:

https://dba.stackexchange.com/questions/44101/importing-sql-server-database-from-a-sql-file


1
尽管我认为它并没有回答问题,但这是有用的信息,所以“非常感谢”。 - MVCDS
1
这个方法可行,但你可能需要使用 -d 分离数据库,像这样:sqlcmd -S 服务器名 -d 实例名 -i C:\path\mysqlfile.sql -o C:\path\output_file.txt - EliSquared
@EliSquared,你能告诉我吗?在运行命令之前,我们是否需要删除现有的表格? - Venkata Shivaram

34
如果您谈论的是实际的数据库(一个mdf文件),那么您需要附加它。 .sql文件通常使用SQL Server Management Studio运行。它们基本上保存了SQL语句,因此可以是任何内容。您不需要“导入”它们。更准确地说,您需要“执行”它们。尽管脚本可能确实插入数据。
另外,为了扩展Jamie F的答案,请勿对您的数据库运行SQL文件,除非您知道它在做什么。 SQL脚本可能和未经检查的exe一样危险。

24
  1. 打开 SQL Server Management Studio
  2. 连接到你的数据库
  3. 选择 菜单栏中的文件 > 打开 > 文件,并选择你的文件
  4. 执行它

3
当打开/执行具有大量语句的文件时,SQL Server会崩溃。你可能认为这是它擅长的事情。 - Marcelo Mason
1
嗨@MarceloMason,我想知道打开一个包含4.5k到5k条记录的.sql文件需要多长时间。 - Venkata Shivaram

4

为了导入您的.sql文件,请按照以下步骤进行操作:

  1. 启动SQL Server Management Studio
  2. 连接到您的数据库
  3. 打开查询编辑器
  4. 将您的.sql文件拖放到编辑器中
  5. 执行导入操作

1
您可能希望为此添加更多细节。如果您认为有必要,可以添加屏幕截图。 - TsTeaTime
基本上,运行查询编辑器中 .sql 文件的内容。我在我的数据库中执行了这个操作,然后得到了所有的表格(大约10个)。请确保你不要删除已有的并且你想保留的任何东西。 - carloswm85

4

请尝试以下步骤 -

打开查询分析器

开始 --> 程序 --> MS SQL Server --> 查询分析器

打开后,连接到你希望在其中运行脚本的数据库。

接下来,使用“文件”-->“打开”选项打开SQL文件。选择.sql文件。

一旦文件被打开,您可以通过按F5键来执行该文件。


2

.sql文件是一组可以对SQL服务器执行的命令。

有时,.sql文件将指定数据库,其他时候您可能需要指定此内容。

您应该与负责维护数据库的DBA或其他人员进行交流。他们可能希望快速查看文件。 .sql文件可能会造成很多伤害,甚至是无意中造成的。

如果您想继续,请参见其他答案。


0
  1. 在SSMS中获取服务器和数据库的名称:

    SSMS突出显示服务器名称和数据库名称的屏幕截图

  2. 在PowerShell或CMD中运行以下命令:

    sqlcmd -S "[SERVER NAME]" -d [DATABASE NAME] -i .\[SCRIPT].sql
    

    这是一个可能看起来像这样的屏幕截图:

    Windows终端上运行SQL脚本命令的屏幕截图


-2

在 MS SQL 中没有导入这样的东西。我明白你的意思。这很简单。每当你得到/有一个 something.SQL 文件时,只需双击它,它就会直接在你的 MS SQL Studio 中打开。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接