SQLサーバーに一括挿入する次のコードがあります(ここの下部にある例から取得):
SET IDENTITY_INSERT [dbo].Reporting_DriverScoreCard ON
EXECUTE XP_CMDSHELL 'BCP AT100Reporting.dbo.Reported_Driver_ScoreCard out D:\temp\Reported_Driver_ScoreCard.txt -T -n'
BULK INSERT [dbo].Reporting_DriverScoreCard
FROM 'D:\temp\Reported_Driver_ScoreCard.txt'
WITH
(
DATAFILETYPE = 'native',
ERRORFILE = 'D:\temp\error.txt',
MAXERRORS = 10000
);
SET IDENTITY_INSERT [dbo].Reporting_DriverScoreCard OFF
ただし、このコマンドを実行すると失敗し、次のエラー メッセージが表示されます。
Explicit value must be specified for identity column in table 'Reporting_DriverScoreCard' either when IDENTITY_INSERT is set to ON or when a replication user is inserting into a NOT FOR REPLICATION identity column.
これは、作成されているtxtファイルの最後に余分な行があるため、ファイルの最後に到達したときに空白行を挿入しようとしているからだと思います(そして、他のすべての行にはIDが設定されています. )
これを使用しようとしている大規模なデータベースが複数あるため、これを適切に機能させる方法はありますか?