گاهی اوقات نیاز داریم اطلاعاتی را در یک بانک sql درج کنیم که ممکنه این اطلاعات حجمشون زیاد باشه و در واقع تعداد رکورد های ما زیاد باشه خوب اگه بخواهیم این اطلاعات رو رکورد به رکورد بخونیم و در یک بانک درج کنیم ممکنه زمان زیادی طول بکشه روشی که برای ذخیره اطلاعات با حجم زیاد در sql وجود داره اینه که ابتدا باید داده ها رو در یک datatable و یا یک datareader قرار بدیم و بعد با استفاده از دستورات زیر اطلاعات رو در مدت زمان کوتاهی در بانک مورد نظر ذخیره کنیم SqlBulkCopy
sbc.DestinationTableName = tablename;
sbc.WriteToServer(datatablename);
sbc.Close();
با استفاده از دستورات بالا، محتویات datatable ما در جدول مورد نظر درج خواهد شد
دقت دارید که ساختار datatable باید شبیه به جدول بانک اطلاعاتی باشد .
فرض کنید فایلی متنی داریم که این فایل دارای اطلاعاتی است که اطلاعات آن شبیه به جدول در آن ذخیره شده مثلا هر رکورد در یک خط ذخیره شده و هر فیلد از هر رکورد آن با کاراکتر تب( t\ ) از هم جدا شده و می خواهیم اطلاعات این فایل رو در یک جدول از بانک sql ذخیره کنیم فرض کنید محتویات فایل به شکل زیر باشه amir niazai 123 mohammad sadeghi 456 برای ذخیره این فایل درون یک جدول Sql ( که جدول باید دارای 3 فیلد باشه ) به شکل زیر عمل می کنیم bulk insert fegh.dbo.treemain که نام جدول و بانک رو جلوی دستور bulk insert میاریم آدرس فایل رو هم جلوی دستور from و ساختار فایل رو هم در قسمت with
FROM 'C:\Users\Niazi\Desktop\table\tree.txt'
WITH
(
FIELDTERMINATOR ='\t',
ROWTERMINATOR ='\n',
codepage='1256'
)
تبلیغات 