【问题标题】:Why can I not save my query result to csv file SQL Server?为什么我不能将查询结果保存到 csv 文件 SQL Server?
【发布时间】:2016-03-03 02:55:25
【问题描述】:

我是 SQL Server 的初学者,想将查询结果自动保存在 csv 文件中。

这是查询:

EXEC master..xp_cmdshell'bcp "SELECT [ID]
      ,[FirstName]
      ,[LastName]
      ,[StartYear]
  FROM [dbo].[Employees]" queryout "e:\text.txt" -c -T -x

但得到这个错误:

字符串 'bcp "SELECT [ID] 后的非右引号 ,[名] ,[姓] ,[开始年份] FROM [dbo].[Employees]" queryout "e:\text.txt" -c -T -x

发生了什么?我该如何解决?

我收到此错误:

【问题讨论】:

    标签: sql-server tsql bcp xp-cmdshell


    【解决方案1】:

    你可以使用:

    DECLARE @sql VARCHAR(8000);
    
    SET @sql = 'bcp "SELECT [ID]
          ,[FirstName]
          ,[LastName]
          ,[StartYear]
      FROM [dbo].[Employees]" queryout "e:\text.txt" -c -T -t, -S' + @@servername;
    
    EXEC master..xp_cmdshell @sql;
    

    您需要先启用xp_cmdshell:

    EXEC sp_configure 'show advanced options', 1
    GO
    RECONFIGURE
    GO
    EXEC sp_configure 'xp_cmdshell', 1
    GO
    RECONFIGURE
    GO
    

    请记住,启用它可能会使您面临某种类型的攻击,您应该避免使用它。


    或者,如果您需要这样做,您可以使用 SSMS -> Tasks -> Export Data -> Flat File Destination

    http://www.sqlservercurry.com/2011/01/sql-server-export-table-to-csv.html

    【讨论】:

    • 谢谢,但现在出现此错误:SQL Server 阻止访问过程 'sys.xp_cmdshell'
    • 好人,现在不会出错,但不要在文件中保存任何内容
    • @user3671271 你的表有数据吗?
    猜你喜欢
    • 2014-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-30
    • 2011-08-29
    • 1970-01-01
    • 2011-03-11
    相关资源
    最近更新 更多