1

一括挿入を試みています。

ここに私のSQLスクリプトがあります

GO
Use test
DROP TABLE PDTEST
create table pdtest
(
 CustID INT IDENTITY(1,1),
 work_phone_extension varchar(5),
 residential_postal_or_zip_code varchar(30),
 residential_street_address_line_1 varchar(30),
 residence_phone varchar(17),
 work_phone varchar(17),
 name_part varchar(30),
 mailing_city varchar(20),
 mailing_postal_or_zip_code varchar(30),
 mailing_street_address_line_2 varchar(30),
 mailing_street_address_line_1 varchar(30),
 cell_phone varchar(17),
 residential_city varchar(20),
 residential_country_and_province_or_state varchar(10),
 mailing_country_and_province_or_state varchar(10)
)
BULK INSERT pdtest
FROM 'C:\Python27\Scripts\pd.csv'
WITH
(
 FIELDTERMINATOR = ',',
 ROWTERMINATOR = '\n',
 KEEPNULLS,
 FIRSTROW = 2
)
GO

これが私のテキストファイルの行です

,91234,,,,WOLFIE HOWLETT,416-,Toronto,,,,,Toronto,CA_ON,CA_ON

名前の部分には Wolfie Howlett が必要です。416- があり、勤務先の内線番号は null である必要がありますが、値が 91234 で、residential_postal_or_zip_code が null であり、これは間違っています。

ここではフィールド マッピングが間違っています。修正するにはどうすればよいですか?

4

2 に答える 2

0

申し訳ありませんが、テキストファイルを編集する必要があります。構文エラーが発生しているため、変更する必要があります。同じ名前で同じ場所にある新しいテキストファイルを削除および追加する方法を提案できます。

構文を見ると、最初の列に「自動増分」を指定したようです。したがって、CustIDの値を指定する必要はなく、その開始コンマをcsvファイルに保持する必要もありません。

SQLはそれ自体でCustId値を取ります。csvファイルの構文を以下に示します

91234,,,,WOLFIE HOWLETT,416-,Toronto,,,,,Toronto,CA_ON,CA_ON

お役に立てば幸いです。

于 2013-02-11T04:18:51.873 に答える
0

問題は、最初の文字としてコンマがあることです。そのため、SQL はその前の空のスペースを列の値として扱い、それを CustID に挿入するため、すべてが 1 つ右にシフトされます。そのため、CustID の前にテスト テーブルにダミーの列を作成するか、行の最初のコンマを削除します。

于 2013-02-11T01:44:18.610 に答える