2017-03-16 7 views
0

コピーして別の.csvファイルに貼り付けてから保存する代わりにスクリプトを使用して作成した15-20の一時テーブルから.csvファイルをエクスポートできるスクリプトを作成したいと思います。mySQL #tempテーブルをスクリプト内の.csvファイルにエクスポートするにはどうすればよいですか?

:!!sqlcmd -S server -d database-E -Q "SET NOCOUNT ON 
SELECT * FROM TABLE" -o "C:\Users\name\Documents\folder\filename.csv" 
-W -w 1024 -s "," 

私は(正しく書式設定ではない)働く、これを試してみたが、一時テーブルのためにすべての作業ではないようです。ファイルには.csvが含まれています。

Msg 208 Level 16 State 1  Server SERVERNAME 
Invalid object name '#TEMPTABLE'.  

私は、ストアドプロシージャを作成し、新しいデータベースを作成するか、コマンドラインにアクセスできないため、BCPエクスポートを使用できるように「昇格した権限」を取得することはできません。このための回避策はありますか?

答えて

0

一時テーブルは一時的です。セッション間で持続しません。代わりに一時テーブルを作成し、tempdb

例からデータをエクスポートし、あなたが作業しているデータベースで、またはtempdbのいずれかで、実際のテーブルを作成します。

sqlcmd -S server -d database -E -Q "If Exists (select * FROM tempdb.sys.tables WHERE name = 'Tmp_DataExport1') drop TABLE tempdb..Tmp_DataExport1;"

sqlcmd -S server -d database -E -Q "SELECT TOP 5 * INTO tempdb..Tmp_DataExport1 FROM T_SourceTable"

sqlcmd -S server -d database -E -Q "SELECT * FROM tempdb..Tmp_DataExport1" -o "c:\temp\filename.csv" -W -w 1024 -s ","

+1

ありがとうございます。残念ながら、データベースに実際のテーブルを作成する権限がありません。これは、権限を持っていないためです。テーブルをtempdbに移動してからエクスポートしてみましょう – PharmaSQLnovice

関連する問題