sql文件怎么导入数据库里(sql文件怎么导入数据库里)

sql文件怎么导入数据库里(sql文件怎么导入数据库里)p strong 适用于 strong p

大家好,我是讯享网,很高兴认识大家。



 </nav><p><strong>适用于:</strong><img src="https://docs.microsoft.com/zh-cn/sql/includes/media/yes-icon.svg?view=sql-server-ver16" role="presentation" data-linktype="relative-path">SQL Server <img src="https://docs.microsoft.com/zh-cn/sql/includes/media/yes-icon.svg?view=sql-server-ver16" role="presentation" data-linktype="relative-path">Azure SQL 数据库</p> 

讯享网

将 Excel 文件中的数据导入 SQL Server 或 Azure SQL 数据库的方法有多种。 某些方法允许你在单个步骤中从 Excel 文件直接导入数据,其他方法要求在导入数据前,必须将 Excel 数据先导出为文本 (CSV 文件)。

本文总结了常用的方法,并提供有关更为详细的信息的链接。 本文不包括 SSIS 或 Azure 数据工厂等复杂工具和服务的完整描述。 要详细了解感兴趣的解决方案,请单击所提供的链接。

可采用多种方式从 Excel 导入数据。 可能需要安装 SQL Server Management Studio (SSMS) 才能使用其中一些工具。

可使用以下工具从 Excel 导入数据:

首先导出到文本(SQL Server 和 Azure SQL 数据库) 直接从 Excel(仅本地 SQL Server)进行 导入平面文件向导 SQL Server 导入和导出向导 BULK INSERT 语句 SQL Server Integration Services (SSIS) 大容量复制工具 ( bcp) OPENROWSET 函数 复制向导(Azure 数据工厂) Azure 数据工厂

如果要从 Excel 工作簿导入多个工作表,通常必须为每个工作表运行一次其中任何工具。

要了解详细信息,请参阅向 Excel 文件中加载数据以及从 Excel 文件加载数据的限制和已知问题。

使用 SQL Server 导入和导出向导直接从 Excel 文件导入数据。 还可以将设置保存为可以稍后自定义和重用的 SQL Server Integration Services (SSIS) 包。

  1. 在 SQL Server Management Studio 中,连接到 SQL Server 数据库引擎 的实例。
  2. 展开 “数据库”
  3. 右键单击某个数据库。
  4. 选择“任务”。
  5. 选择“导入数据”或“导出数据”

这将启动向导:

有关详细信息,请参阅以下文章:

  • 启动 SQL Server 导入和导出向导
  • 导入和导出向导的简单示例入门

如果熟悉 SQL Server Integration Services (SSIS),并且不想运行 SQL Server 导入和导出向导,可以创建在数据流中使用 Excel 源和 SQL Server 目标的 SSIS 包。

有关详细信息,请参阅以下文章:

  • Excel 源
  • SQL Server 目标

若要开始学习如何生成 SSIS 包,请参阅教程如何创建 ETL 包。

连接到 Excel 数据源的 ACE 提供程序(前身为 Jet 提供程序)旨在用于交互式客户端用途。 如果在 SQL Server 上使用 ACE 提供程序,尤其是在自动进程或并行运行的进程中,可能会发生意外结果。

使用 Transact-SQL 或 函数直接从 Excel 文件导入 SQL Server。 这种用法称为“分布式查询”

必须先启用 服务器配置选项(如以下示例所示),然后才能运行分布式查询。 有关详细信息,请参阅服务器配置:即席分布式查询。

讯享网

下面的代码示例使用 ,将 Excel 工作表中的数据导入新的数据库表。

 

下面的示例用途相同,区别在于使用的是 。

讯享网

若要将导入的数据追加到现有表,而不是新建表,请使用 语法,而不是上面示例中使用的 语法。

若要查询(而不是导入)Excel 数据,只需使用标准 语法。

有关分布式查询的详细信息,请参阅以下文章:

  • 分布式查询 1
  • OPENROWSET (Transact-SQL)
  • OPENDATASOURCE (Transact-SQL)

1 SQL Server 仍支持分布式查询,但此功能的相关文档尚未更新。

还可以将从 SQL Server 到 Excel 文件的永久性连接配置为链接服务器。 下面的示例将现有 Excel 链接服务器 上的 工作表数据导入名为 的新 SQL Server 数据库表。

 

可以通过 SQL Server Management Studio (SSMS) 或运行系统存储过程 (如以下示例所示)创建链接服务器。


讯享网

讯享网

有关链接服务器的详细信息,请参阅以下文章:

  • 创建链接服务器(SQL Server 数据库引擎)
  • OPENQUERY (Transact-SQL)

有关链接服务器和分布式查询的更多示例和详细信息,请参阅以下文章:

  • 如何通过 SQL Server 链接服务器和分布式查询使用 Excel

要使用本页上的其他方法( 语句、bcp 工具或 Azure 数据工厂),必须先将 Excel 数据导出到文本文件中。

在 Excel 中,选择“文件”|“另存为”,再选择“文本文件(制表符分隔)(*.txt)”或“CSV (逗号分隔)(.csv)”作为目标文件类型

如果要从工作簿中导出多个工作表,请选择每个工作表,然后重复此过程。 “另存为”命令仅导出活动工作表

通过单步执行导入平面文件向导各页面,导入保存为文本文件的数据。

如前面先决条件部分中所述,必须先将 Excel 数据导出为文本,然后才能使用导入平面文件向导导入它。

有关导入平面文件向导的详细信息,请参阅将平面文件导入到 SQL 向导。

是可以通过 SQL Server Management Studio 运行的 Transact-SQL 命令。 下面的示例将 逗号分隔文件中的数据加载到现有数据库表中。

如前面先决条件部分中所述,必须先将 Excel 数据导出为文本,然后才能使用 导入它。 无法直接读取 Excel 文件。 使用 命令,可以导入存储在本地或在 Azure Blob 存储中的 CSV 文件。

 

有关 SQL Server 和 Azure SQL 数据库的详细信息和示例,请参阅以下文章:

  • 使用 BULK INSERT 或 OPENROWSET(BULK...) 导入数据到 SQL Server
  • BULK INSERT (Transact-SQL)

bcp 工具从命令提示符运行。 下面的示例将 逗号分隔文件中的数据加载到现有 数据库表中。

如前面先决条件部分中所述,必须先将 Excel 数据导出为文本,然后才能使用 bcp 导入它。 bcp 工具无法直接读取 Excel 文件。 用于从保存在本地存储的测试 (CSV) 文件中导入 SQL Server 或 SQL 数据库。

讯享网

有关 bcp 的详细信息,请参阅以下文章:

  • 使用 BCP 导入和导出批量数据 (SQL Server)
  • bcp 实用工具
  • 准备用于批量导出或导入的数据

通过逐步执行 Azure 数据工厂 (ADF) 复制向导各页面,导入保存为文本文件的数据。

如前面先决条件部分中所述,必须先将 Excel 数据导出为文本,然后才能使用 Azure 数据工厂导入它。 数据工厂无法直接读取 Excel 文件。

有关复制向导的详细信息,请参阅以下文章:

  • 数据工厂复制向导
  • 教程:使用数据工厂复制向导创建带有复制活动的管道。

如果熟悉 Azure 数据工厂,并且不想运行复制向导,请创建带有复制活动的管道,用于将文本文件复制到 SQL Server 或 Azure SQL 数据库。

如前面先决条件部分中所述,必须先将 Excel 数据导出为文本,然后才能使用 Azure 数据工厂导入它。 数据工厂无法直接读取 Excel 文件。

若要详细了解如何使用这些数据工厂源和接收器,请参阅以下文章:

  • 文件系统
  • SQL Server
  • Azure SQL 数据库

若要开始学习如何使用 Azure 数据工厂复制数据,请参阅以下文章:

  • 使用复制活动移动数据
  • 教程:使用 Azure 门户创建带有复制活动的管道

Microsoft.ACE.OLEDB.12.0 尚未注册

发生此错误的原因是未安装 OLEDB 提供程序。 请通过 Microsoft Access 数据库引擎 2016 可再发行组件进行安装。 如果 Windows 和 SQL Server 都是 64 位,请务必安装 64 位版本。

完整错误为:

 

无法为链接服务器 "(null)" 创建 OLE DB 提供程序 "Microsoft.ACE.OLEDB.12.0" 的实例

此错误表示 Microsoft OLEDB 配置错误。 要解决此问题,请运行以下 Transact-SQL 代码:

讯享网

完整错误为:

 

32 位 OLE DB 提供程序 "Microsoft.ACE.OLEDB.12.0" 无法在 64 位 SQL Server 上的进程内加载

32 位版本的 OLD DB 提供程序与 64 位 SQL Server 一起安装时,会发生此错误。 要解决此问题,请卸载 32 位版本,改为安装 64 位版本的 OLE DB 提供程序。

完整错误为:

讯享网

链接服务器 "(null)" 的 OLE DB 提供程序 "Microsoft.ACE.OLEDB.12.0" 报告了错误

此错误通常表示 SQL Server 进程和文件之间存在权限问题。 请确保运行 SQL Server 服务的帐户对文件具有完全访问权限。 建议不要尝试从桌面导入文件。

完整错误为:

 

无法初始化链接服务器 "(null)" 的 OLE DB 提供程序 "Microsoft.ACE.OLEDB.12.0" 的数据源对象

此错误通常表示 SQL Server 进程和文件之间存在权限问题。 请确保运行 SQL Server 服务的帐户对文件具有完全访问权限。 建议不要尝试从桌面导入文件。

完整错误为:

讯享网

  • 导入和导出向导的简单示例入门
  • 使用 SQL Server Integration Services (SSIS) 将数据导入 Excel 或从 Excel 导出数据
  • bcp 实用工具
  • 使用复制活动移动数据


小讯
上一篇 2025-06-14 15:14
下一篇 2025-05-11 12:15

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/199567.html