プロが教えるわが家の防犯対策術!

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」ってなかなかうまくひっかからない!!
ので質問あげさせていただきます。

A 回答 (1件)

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

。。

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

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

質問者さんの細かな要件に合致しているかは不詳ですが、csv出力はbcpユティリティで行なえるようです。
http://homepage1.nifty.com/kojama/works/rdbms/ms …
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/06/04 17:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!