を指定する必要があります。test.txtというの明示的な値は、私は次のコマンドを持っているテーブルにID列に対するSQLクエリエディタで
SET IDENTITY_INSERT tUserPreference ON
BULK INSERT tUserPreference
FROM 'D:\test.txt'
WITH
( KEEPIDENTITY,
BATCHSIZE = 2,
FIRSTROW = 2,
FIELDTERMINATOR = ',' ,
ROWTERMINATOR = '\n',
DATAFILETYPE = 'char',
KEEPNULLS
);
SET IDENTITY_INSERT tUserPreference OFF
GO
内容:
"UserPreferenceId","UserId","UserPreferenceValue","UserPreferenceTypeId"
7858,1194,"FSP,FRB,FWF,FBVS,FRRC",15
7859,1194,"FIRM",21
7860,1194,"009,61,114,142,174,233,262,286,303,325,369,389,411,671,690,735,938,943,977,105,200",11
7861,1194,"B545,B441",12
7862,1194,"{"FIRM":{"accountType":"Firm","timeInForce":"DAY","routing":"DNR","isAllOrNone":false}}",2
しかし、私はこれらのコマンドを実行します私は次の結果を参照してください。
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 2, column 4 (UserPreferenceTypeId).
Msg 2627, Level 14, State 1, Line 3
Violation of PRIMARY KEY constraint 'PK_tUserPreference_UserPreferenceId'. Cannot insert duplicate key in object 'dbo.tUserPreference'. The duplicate key value is (7859).
The statement has been terminated.
のみ1行挿入(7861,1194,"B545,B441",12
)
テーブルスクリプト作成:
CREATE TABLE [dbo].[tUserPreference](
[UserPreferenceId] [int] IDENTITY(1,1) NOT NULL,
[UserId] [int] NULL,
[UserPreferenceValue] [varchar](max) NULL,
[UserPreferenceTypeId] [int] NOT NULL,
CONSTRAINT [PK_tUserPreference_UserPreferenceId] PRIMARY KEY CLUSTERED
....
適切に一括挿入を使用して挿入する方法を?
あなたはSQL Serverが 'BULKのINSERT'時のID値を割り当てたい場合は、フォーマットファイルが必要です。 [ドキュメントを参照](https://msdn.microsoft.com/en-us/library/ms188365.aspx)。 –
[BULK INSERTとID(自動インクリメント)列の可能な複製](URL:http://stackoverflow.com/questions/10851065/bulk-insert-with-identity-auto-increment-column) –
@Chris Pickford私は挿入が必要ですIDフィールド – gstackoverflow