2017-04-12 21 views
2

フォーマットファイルを使用して、.csvファイルから物理サンプルテーブルにインポートするには、次の操作を実行できます。私はそれが働いている。次の例では、INSERTを使用しOPENROWSET一括行セットプロバイダXMLバルクフォーマットファイルで.csvファイルからOpenrowsetを挿入してTEMPORARYテーブルを作成する

を使用して

... SELECT * OPENROWSET(BULK ...)FROM myTestFormatFiles-c.Datデータファイルから 一括インポートデータへAdventureWorksサンプル のHumanResources.myTestFormatFilesテーブルに データベースに追加します。この例では、XML形式のファイルMyTestFormatFiles.Xmlを使用しています。 この例では、データ ファイルをインポートする前に既存のテーブル行が削除されます。 SQL Server Management Studioのクエリエディタで、次のコマンドを実行します

USE AdventureWorks2012; 
DELETE myTestFormatFiles; 
GO 
INSERT INTO myTestFormatFiles 
    SELECT * 
     FROM OPENROWSET(BULK 'C:\myTestFormatFiles-c.Dat', 
     FORMATFILE='C:\myTestFormatFiles.Xml'  
    ) as t1 ; 
GO 
SELECT * FROM myTestFormatFiles; 
GO 
-- When you finish using the sample table, you can drop it using the following statement: 
DROP TABLE myTestFormatFiles 

は、しかし、私がやりたいまさにこのしかし、1つが作成できるのと同じように、まだ存在していない一時的 #table(にインポートselect into文を持つ新しいテーブル)。それは可能ですか?

補助質問:select intoを使用して一時テーブルを作成できますか? select into to create a tableを使用することができます。

今、私はそれにテーブルとインポートを作成するために、まだ既存の一時テーブルにインポートバルクOPENROWSETを使用することができます。

INSERT INTO #TestFormatFiles 
     SELECT * 
      FROM OPENROWSET(BULK 'C:\myTestFormatFiles-c.Dat', 
      FORMATFILE='C:\myTestFormatFiles.Xml'  
     ) as t1 ; 
    GO 

テストは私に何を伝えない:Invalid Object name #TestFormatFiles

しかし、なしの方法があります既存のテーブルから一時テーブルを作成する必要がありますか?

+0

はあなたが事前に挿入されているか、それが異なりますデータの構造を知っていますか? – RT72

+0

今すぐ試す時間はありませんが、通常の方法で試してみましたか?テーブルが作成され、 'select * into #tmp from ...' –

答えて

1

はい:代わりにSELECT * INTO #TestFormatFiles FROM OPENROWSET...を使用してください。

は(あなたは、ほぼそれを持っていた:あなただけではない INSERT INTOテーブルが存在しないことができる。)

関連する問題