こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

[SQL Server] コマンドプロンプトからのCSV形式出力

SQL ServerのテーブルデータをSELECTしてダブルコーテ区切りのCSVに出力したいと考えております。
・batファイルからの起動を希望。
・出力CSVファイル名はbatファイルより引数で指定したい。
・出力後、DELETEも行いたい。
OracleだとSQL*Plus環境で下記のようにテキストレベルで簡単にできます。
SQL Serverでも同様のことができないでしょうか?
要は下記をSQL Server版でやりたいということです。

参考:Oracleだと・・・
同一dirに、abc.batとabc.sqlを用意しabc.batを実行すると20070601.csvが生成される。

1.abc.bat
rem ----abc.bat-ここから----
sqlplus usr/pwd@host @abc.sql 20070601.csv
rem ----abc.bat-ここまで----

2.abc.sql
----ファイル名=abc.sql-ここから---
set echo off
set heading off
SET VERIFY OFF
set FEEDBACK OFF
set TRIMSPOOL on
set termout off
set pagesize 0
set linesize 32767
spool &1
select
'"'|| カラム1 ||'",'||
'"'|| カラム2 ||'",'||
'"'|| カラム3 ||'"'
from テーブル1;
spool off
delete from テーブル1;
exit
----ファイル名=abc.sql-ここまで---

20070601.csv結果
-ファイル名=20070601.csv-ここから---
"20060726","scott","356160"
"20060727","tiger","463391"
"20060728","manager","1930"
-ファイル名=20070601.csv-ここまで---


DBサーバ環境
OS:Win2003SvrR2
SQL Serverバージョン:わかりません。(2003にのってるので最近のだと思われます)

Oracle経験者でSQLServer初心者です。マニュアルもなく、Web検索しても「SQL」「Server」ってなかなかうまくひっかからない!!
ので質問あげさせていただきます。

投稿日時 - 2007-06-01 17:34:04

QNo.3048497

暇なときに回答ください

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

SQL Serverのこの辺の機能については、あまり詳しくないのですが。。。

>マニュアルもなく、Web検索しても

オンラインマニュアルがあります。
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/coprompt/cp_bcp_61et.asp

質問者さんの細かな要件に合致しているかは不詳ですが、csv出力はbcpユティリティで行なえるようです。
http://homepage1.nifty.com/kojama/works/rdbms/mssql/misc.html#term03

投稿日時 - 2007-06-01 19:34:21

お礼

基本はbcpユーティリティなのですね。調査、テストしてみます。アドバイスありがとうございます。

投稿日時 - 2007-06-04 17:26:14

あなたにオススメの質問