Tsql 将查询导出到文本文件

Tsql 将查询导出到文本文件,tsql,Tsql,我试图做的是将Tsql查询导出到csv文件。很简单,但是我需要能够指定哪些字段用引号括起来。我可以将我的查询导出,并包装所有feild "SCHEN001","Joe Bloggs Inc","1","1","1","1","1","1","13","6","Mr John Smith" 我想出口的是 "SCHEN001","Joe Bloggs Inc",1,1,1,1,1,1,13,6,"Mr John Smith" 使用Tsql可以做到这一点吗 任何想法都将不胜感激请查看bcp.exe

我试图做的是将Tsql查询导出到csv文件。很简单,但是我需要能够指定哪些字段用引号括起来。我可以将我的查询导出,并包装所有feild

"SCHEN001","Joe Bloggs Inc","1","1","1","1","1","1","13","6","Mr John Smith"
我想出口的是

"SCHEN001","Joe Bloggs Inc",1,1,1,1,1,1,13,6,"Mr John Smith"
使用Tsql可以做到这一点吗

任何想法都将不胜感激

请查看bcp.exe实用程序。它是批量操作的模板,您可以为导出等指定模板


一个看似合理的链接:

如果您有MS SQL Server Standard或Enterprise edition,另一种方法是使用SQL Server集成服务


或者,您也可以将网格结果复制到Excel中,并从中导出CSV:-

尝试使用此脚本

将变量@TblName设置为表的名称

该脚本使用了schema.columns的信息 获取所选表中每列的数据类型

DECLARE @TblName varchar(128)
DECLARE @WhereClause varchar(255)

DECLARE @cmd varchar(7000)
SET @TblName = '<YOUR TABLENAME>' --TABLENAME
SET @cmd = ''

create table #tableDef (id int identity (1,1), ColType int, ColName varchar(128))

--Fetch table information
insert  #tableDef (ColType, ColName)
select case when DATA_TYPE like '%char%' then 1
            when DATA_TYPE like '%datetime%' then 2 
            else 0 end ,
    COLUMN_NAME
from    information_schema.columns
where   TABLE_NAME = @TblName
order by ORDINAL_POSITION

SELECT   @cmd = @cmd
                + ' CASE WHEN ' + ColName + ' IS NULL '
                +   ' THEN ''NULL'' '
                +   ' ELSE '
                +     case ColType 
                      when  1 then  ''''''''' + ' + ColName + ' + ''''''''' 
                      when  2 then  ''''''''' + ' + 'CONVERT(VARCHAR(20),' + ColName + ')' + ' + '''''''''                    
                      else 'CONVERT(VARCHAR(20),' + ColName + ')' end
                + ' END + '','' + '
        from    #tableDef
order by id

select @cmd = 'SELECT  ' + left(@cmd,len(@cmd)-8) + '+'''' FROM ' + @tblName 

exec (@cmd)

drop table #tableDef