2011-06-27 20 views
1

私がしようとしているのは、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ユーティリティを見てみましょう

答えて

1

別のアプローチは、あなたがMS SQL ServerのStandard EditionまたはEnterprise Editionを持っている場合、SQL Serverの統合サービスを(使用することです:合理的と思われるリンクなど

これは、バルク操作のためのメンターであり、あなたは、輸出のためのテンプレートを指定することができます)

+0

SSISの場合は+1、Excelの場合は-0.4 +コピー/ペースト) – faester

0

:-)

、あるいは、あなたがグリッドをコピーすることができますExcelになり、そして輸出CSVそこからは、このスクリプトを使用してみてください。

変数@TblNameにテーブルの名前を設定します。

このスクリプトは、information_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 
関連する問題