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

SRa*_*ani 11 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'
Run Code Online (Sandbox Code Playgroud)

D S*_*ley 19

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

查询 - >结果到 - >结果到文件

  • 当然,请使用SqlCmd或BCP。公平地说,您问“如何在SQL Server 2008 Management Studio中”进行操作。 (2认同)

Fra*_*ein 10

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

OSQL -S SERVERNAME -E -i thequeryfile.sql -o youroutputfile.txt
Run Code Online (Sandbox Code Playgroud)

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


Mih*_*riu 6

您可以使用bcp实用程序.

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

bcp "<your query here>" queryout Contacts.txt -c -T
Run Code Online (Sandbox Code Playgroud)

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


Dan*_*ard 6

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

Invoke-Sqlcmd -Query "Select * from database" -ServerInstance "Servername\SQL2008" -Database "DbName" > c:\Users\outputFileName.txt