データベースの既存のテーブルにデータを挿入するためにcsvファイルをインポートしようとしています。ウィザードを実行しますが、宛先のソーステーブルとビューを選択する場合、何も選択できません。新しいテーブルを作成しようとしていると思っているだけです。
助言がありますか?ありがとう!
ウィザードをスキップして、BULK INSERT
、ここに例があります:
BULK
INSERT CSVTest
FROM 'c:\csvtest.txt'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
GO
完全な例: SQL SERVER –一括挿入を使用してCSVファイルをSQL Serverにインポート– SQL Serverにカンマ区切りファイルをロード
シリルの答えは正しい道に沿っています。ただし、SQL Server 2017(14.x)CTP 1.1以降、真のCSV準拠ソリューションが存在します。
これを使って
BULK INSERT destinationtable
FROM 'filepath'
WITH
(
FORMAT = 'CSV'
)
GO
しかし問題があります。データでNULLを使用してNULLを示す場合、MSSQLSMSはNULLを有効なNULL値として受け入れないため、それらを削除する必要があります。 「、NULL」を「、」に検索/置換します
例(4列):
1,NULL,test,"Escaped text with comma, this works"
このようにフォーマットする必要があります:
1,,test,"Escaped text with comma, this works"
NULL挿入の問題については、 SQLはBULK INSERTでNULL値を挿入しない を参照してください。
詳細は https://docs.Microsoft.com/en-us/sql/t-sql/statements/bulk-insert-transact-sql?view=sql-server-2017 にアクセスできます情報。
複数のオプションがあります。
c#のdtsパスまたはコードを知るには
http://sqlcopy.blogspot.in/2012/07/bulk-sql-to-sql-sql-to-csv-csv-to-sql.html(デッドリンク)