sql >> データベース >  >> RDS >> Sqlserver

CSVファイルをSQLServerにインポートします

    ベースのSQLServerCSVインポート

    1)CSVファイルデータには,が含まれる場合があります (カンマ)(例:説明)の間にあるので、これらのデータをインポート処理するにはどうすればよいですか?

    解決策

    ,を使用している場合 (コンマ)区切り文字として使用する場合、フィールドターミネーターとしてのコンマとデータ内のコンマを区別する方法はありません。別のFIELDTERMINATORを使用します ||のように 。コードは次のようになり、これはコンマとシングルスラッシュを完全に処理します。

    2)クライアントがExcelからcsvを作成する場合、コンマを含むデータは" ... "で囲まれます。 (二重引用符)[以下の例のように]では、インポートはこれをどのように処理できますか?

    解決策

    BULK挿入を使用している場合、二重引用符を処理する方法はありません。データは二重引用符で行に挿入されます。データをテーブルに挿入した後、それらの二重引用符を'に置き換えることができます。 '。

    update table
    set columnhavingdoublequotes = replace(columnhavingdoublequotes,'"','')
    

    3)一部の行に不正なデータがあるかどうかを追跡するには、どのインポートがスキップされますか?(インポートはインポートできない行をスキップしますか?

    解決策

    無効なデータまたは形式のためにテーブルにロードされない行を処理するには、ERRORFILEプロパティを使用して処理できます。エラーファイル名を指定すると、エラーのある行がエラーファイルに書き込まれます。コードは次のようになります。

    BULK INSERT SchoolsTemp
        FROM 'C:\CSVData\Schools.csv'
        WITH
        (
        FIRSTROW = 2,
        FIELDTERMINATOR = ',',  --CSV field delimiter
        ROWTERMINATOR = '\n',   --Use to shift the control to next row
        ERRORFILE = 'C:\CSVDATA\SchoolsErrorRows.csv',
        TABLOCK
        )
    


    1. (WHERE)条件で選択された行から前の行と次の行を取得します

    2. 重要なSQLデータベースを回復するための2020年に最適なSQL回復ツール

    3. C#からSQL Serverを呼び出すときに、いつ再試行するか失敗するかを知っていますか?

    4. csvファイルのいくつかの列をテーブルにコピーします