SQL Server:将查询导出为.txt文件

时间:2013-12-16 20:24:37

标签: sql sql-server sql-server-2008 export-to-text

我正在尝试将我的SQL Server查询结果导出为.txt格式的文件夹(这是针对自动作业)

我知道MySQL中的等价物与INTO OUTFILE一起使用。有谁知道在SQL Server 2008 Management Studio中执行此操作的最佳方法?

SELECT DISTINCT RTRIM (s1.SGMNTID) AS 'AccCode',RTRIM (s1.DSCRIPTN) AS 'CodeDesc', CASE
    WHEN  s1.SGMTNUMB = '1' THEN '1' 
    WHEN s1.SGMTNUMB = '2' THEN '2'
    WHEN s1.SGMTNUMB = '3' THEN '110'
    WHEN s1.SGMTNUMB = '4' THEN '4'
    WHEN s1.SGMTNUMB = '5' THEN '120'
    END AS 'AccountType_id',
CASE WHEN s1.SGMTNUMB = '2' 
THEN LEFT(s1.SGMNTID, 2)
ELSE 'DEFAULT'
END AS 'AccGroupName'

 FROM GL40200 s1

UNION 

SELECT  REPLACE ([ACTNUMBR_1]+'-'+ [ACTNUMBR_2]+'-'+ [ACTNUMBR_3]+'-'+[ACTNUMBR_4]+'-'+    [ACTNUMBR_5],' ', '') AS 'AccCode',
 '' AS 'CodeDesc',
 '0' AS 'AccountType_id',
 'Default' AS 'AccGroupName'
FROM GL00100 a

INTO OUTFILE 'C:\Users\srahmani\verian/myfilename.txt'

6 个答案:

答案 0 :(得分:19)

你在SSMS应用程序中执行此操作,而不是SQL。在工具栏中选择

查询 - >结果 - >结果归档

答案 1 :(得分:9)

另一种方法是从命令行使用osql:

OSQL -S SERVERNAME -E -i thequeryfile.sql -o youroutputfile.txt

这可以在BAT文件中使用,并由Windows用户进行验证。

答案 2 :(得分:5)

您可以使用bcp utility

  

要将结果集从Transact-SQL语句复制到数据文件,   使用queryout选项。以下示例将查询结果复制到Contacts.txt数据文件中。该示例假定您使用的是Windows身份验证,并且与运行bcp命令的服务器实例具有可信连接。在   Windows命令提示符,输入:

bcp "<your query here>" queryout Contacts.txt -c -T

您可以通过在SQL代理作业中直接调用as operating sytstem命令来使用BCP。

答案 3 :(得分:4)

您可以使用Windows Powershell执行查询并将其输出到文本文件

  

Invoke-Sqlcmd -Query“Select * from database”-ServerInstance“Servername \ SQL2008”-Database“DbName”&gt; C:\用户\ outputFileName.txt

答案 4 :(得分:0)

BCP实用程序也可以以.bat文件的形式使用,但要小心转义序列(即引号&#34;&#34;必须与之结合使用)和相应的标记。

.bat示例:

C:
bcp "\"YOUR_SERVER\".dbo.Proc" queryout C:\FilePath.txt -T -c -q
-- Add PAUSE here if you'd like to see the completed batch

-q必须在查询本身存在引号时使用。

如有必要,BCP还可以运行存储过程。同样,要小心:必须在执行之前创建临时表,否则您应该考虑使用表变量。

答案 5 :(得分:-2)

这很简单,答案可以在其他查​​询中找到。对于那些正在查看此内容的人:

select entries from my_entries where id='42' INTO OUTFILE 'bishwas.txt';