如何在不使用导入/导出向导的情况下从SQL Server导出数据?

问题描述 投票:0回答:2

有没有办法从不使用SQL导入和导出向导的SQL服务器中的不同模式导出数据?

我有近400个表,它们分布在不同的数据库中。现在,我正在使用SQL导入和导出向导,对于每个表,我必须打开执行导出的SQL导入/导出向导,并且需要为剩余的399个表及更多重做相同的过程。

是否有任何SQL查询或任何自动过程,我们可以一次性从SQL服务器中的不同模式导出数据?

请帮助我,任何指针将不胜感激。

先感谢您。

sql sql-server
2个回答
0
投票

您可以使用bcp实用程序(更多信息here)。

这是一个简单的命令,用于从数据库[SCHEMA_NAME].[TABLE_NAME]中的表[DB_NAME]导出csv格式的数据:

bcp [DB_NAME].[SCHEMA_NAME].[TABLE_NAME] out C:\data.csv -c -T -t,

0
投票

检查Export table from database to csv file答案:

使用SQLCMD(命令提示符):

在命令提示符下,您可以运行查询并将其导出到文件:

sqlcmd -S . -d DatabaseName -E -s',' -W -Q "SELECT * FROM TableName" > C:\Test.csv

笔记:

  1. 此方法将在文件底部显示“受影响的行”信息,但您可以通过在查询本身中使用“SET NOCOUNT ON”来消除此问题。
  2. 您可以运行存储过程而不是实际查询(例如“EXEC Database.dbo.StoredProcedure”)
  3. 您可以使用任何编程语言甚至批处理文件来自动执行此操作

使用ApexSQL工具:

使用ApexSQL完整复制结果作为CSV选项将SQL Server数据导出为CSV。

复制代码是ApexSQL Complete中的一项功能,它是SSMS和Visual Studio的免费加载项,可以将结果网格中的数据复制到以下数据文件之一的剪贴板中:CSV,XML,HTML,只需单击一下即可。

在查询编辑器中,键入以下代码并执行:

例:

USE AdventureWorks2014

SELECT at.* FROM Person.AddressType at

在“结果”网格中,选择部分或全部数据,右键单击并从上下文菜单中的“将结果复制为子菜单”下,选择CSV,XML和HTML等命令

这会将所选数据从“结果”网格复制到剪贴板。现在,所有需要做的就是创建一个应该粘贴复制数据的文件:

当您需要将重复的SQL数据复制到另一种数据格式时,ApexSQL完整复制代码作为选项可以节省大量时间。

© www.soinside.com 2019 - 2024. All rights reserved.