最良の方法は、我々は、フラットファイルのすべてのタイプのハンドルをCSVリーダー・コンポーネント(フラット・ファイル・ソース)を持つSSIS .IN SSISを使用するようになります(区切りパイプラインまたはタブを。など).Using検索uがしてチェックすることができますテーブル内の既存の行を削除してから、Oledbコンポーネントを使用して更新、挿入、または削除できます。
SSISを使用したくない場合は、XMLストアドプロシージャを使用して別の方法でラウンドが行われます。すべての行に対してデータベースを使用する代わりに、XMLとしてデータを渡してストアドプロシージャで操作できます。
例:私たちが話しているデータのどのような量
SET NOCOUNT ON;
-- Insert statements for procedure here
Insert into RCMReport(
ProjectName
,Category
,EndTime)
Select
XMLDATA.item.value('@ProjectName[1]', 'varchar(255)') AS ProjectName,
XMLDATA.item.value('@Category[1]', 'varchar(200)') AS Category,
XMLDATA.item.value('@EndTime[1]', 'datetime') AS EndTime
FROM @XMLDATA.nodes('//RCMReport/InsertList') AS XMLDATA(item)
をBEGIN
ASソース
としてXMLを使用してテーブルにデータを挿入するには?私はスケールについて話すときにあなたが時期尚早であるかどうかを判断しようとしています。 – Oded
これを分割して一括して試してみると、既存のデータベースで一度に500行の行が検索されてしまいます。その後、それらをコードにマップし、更新/挿入を一緒に行います(同じ接続を再利用できない理由はありません)。このような多くのデータを扱うときには、失敗した場合、トランザクションは検討する価値があると考える価値があります – ChrisFletcher
[SSIS](http://en.wikipedia.org/wiki/SQL_Server_Integration_Services)を読む必要がありますために。 – Oded