2

SQLを使用してデータベースにテーブルを作成しようとしています。データは現在、このようなテキストファイルにありますが、そのような行が数千行あります。

私の問題は、主に「CREATETABLE」関数のパラメーターにあります。すべての列が必要であると言う方法はありますか?現在、コードは次のようになっています。

CREATE TABLE dbo.CFTC_Fin_Data
(

)

BULK INSERT dbo.CFTC_Fin_Data
    FROM 'H:\user\Desktop\CFTCData1.txt' 
    WITH 
    ( 
        FIELDTERMINATOR = ',', 
        ROWTERMINATOR = '\n' 
    );

助けてくれてありがとう。私はSQLにかなり慣れていないので、同様の質問にすでに回答されていることをお詫びしますが、私が読んだ回答のいずれも理解できませんでした。

4

3 に答える 3

0

ファイルを見て、各フィールドにどのような情報があるかを確認する必要があります。

あなたのファイルの行では、それは

Field1 は文字列です (3 文字、他の行にはもっとあるかもしれません) ? =>NVARCHAR(100)

Field2 は文字列 (xx 文字) =>NVARCHAR(255)

Field3 は DATE => DATE です

Field4 はあらゆる種類のもののようです =>NVARCHAR(100)

だから何か

CREATE TABLE dbo.CTFC_Fin_Data (
column1 NVARCHAR(100),
column2 NVARCHAR(255),
column3 DATE,
column4 NVARCHAR(100)
)

ただし、実際に正しい値とデータ型を見つけるには、すべてのファイルを調べる必要があります

編集 :

実際、あなたは本当にコードでそれを行う必要がありますか?

インポート/エクスポート ウィザード (SQL Server Management Studio 内) を使用すると、データ ファイルをインポートでき、必要に応じてウィザードでテーブルを作成できます。

試す :

データベース名を右クリック => タスク => データのインポート

ウィザードに従います。

必要に応じて、SSIS パッケージを保存することもできます。

それはあなたにとってはるかに適切だと思います!

于 2012-05-31T15:11:47.917 に答える
0

上記の回答に追加するだけで、一括挿入の使用に制限されていない場合は、おそらく openrowset を使用できます。Openrowset を使用する利点は、動的に作成されたテーブルに値を挿入できることです。列の数が異なるため、以下の構文で試すことができます。

 SELECT * INTO newTable

 FROM OPENROWSET(...)
于 2012-05-31T17:02:50.893 に答える
0

データ ファイルには 4 つの列があり、それらを指定する必要があります。

CREATE TABLE dbo.CFTC_Fin_Data
(
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
column_name4 data_type
)

(適切な列名とデータ型を挿入します)

于 2012-05-31T15:08:39.807 に答える