【问题标题】:Copy result of SQL Server query to Excel将 SQL Server 查询结果复制到 Excel
【发布时间】:2013-02-11 21:19:35
【问题描述】:

我正在尝试找出一种将 SQL Server 查询的结果复制到 Excel 的方法。我知道使用 PostgreSQL,你可以执行以下命令:

COPY (SELECT id, summary, description FROM table) TO 'C:/test/table.xls';

达到预期的效果。 SQL Server 中的等效方法是什么?

我想将其作为查询语句运行,因为我想通过将批处理文件作为计划任务运行查询来自动化此过程。

【问题讨论】:

  • 类似这样的:SELECT id, summary, description FROM table INTO OUTFILE '/path/to/file.xls'
  • 它在关键字“INTO”附近显示不正确的语法
  • 我从以下链接收到此错误:消息 7399,级别 16,状态 1,第 3 行链接服务器“(null)”的 OLE DB 提供程序“Microsoft.Jet.OLEDB.4.0”报告一个错误。提供商没有提供有关该错误的任何信息。消息 7303,级别 16,状态 1,第 3 行无法为链接服务器“(null)”初始化 OLE DB 提供程序“Microsoft.Jet.OLEDB.4.0”的数据源对象。

标签: sql-server postgresql sql-server-2005


【解决方案1】:

试试这个: mysql -b -e "$MY_QUERY" > my_data.csv 并查看此 Q 以获取参考和更多详细信息 Convert mysql query results to CSV (with copy/paste)

【讨论】:

    【解决方案2】:

    试试这个:

    INSERT INTO
    OPENROWSET (
      'Microsoft.ACE.OLEDB.12.0',
      'Excel 8.0;HDR=NO;Database=C:\test\table.xls;',
      [Sheet1$]
    ) 
    SELECT id, summary, description FROM table
    

    一些限制

    • 你必须先创建一个空的excel文件。

    • 您必须在第一行添加与插入数据相匹配的列名。

    【讨论】:

    • 它说 OLE DB 提供程序 'Microsoft.ace.oledb.12.0' 尚未注册
    • @user974047 你必须安装Microsoft.ace.oledb.12.0
    • 我运行了安装文件,但它仍然给了我 MSSQL 中的错误
    • 你在你的sql server上安装了吗?
    • 我在安装过程中点击了默认选项
    【解决方案3】:

    我想通了,只需使用 BCP(批量复制程序)来完成这样的工作:

    bcp "select * from [databasename].[dbo].[tablename]" queryout "c:\test\table.csv" -c -t"," -r"\n" -S 服务器名 -T

    【讨论】:

      猜你喜欢
      • 2012-09-04
      • 2021-09-02
      • 2013-03-27
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 2018-09-13
      相关资源
      最近更新 更多