خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


نحوه Bulk Insert در SQL Server

نحوه Bulk Insert در SQL Server
با استفاده از دستور BULK INSERT در SQL Server می توانید مقادیر زیادی از اطلاعات زیادی را از یک فایل text یا CSV به جدول SQL Server یا View اضافه کنید. اساساً ، برای انجام BULK INSERT ، شما به یک منبع (CSV ، txt File) و یک جدول Target (جدول در SQL ، View) نیاز دارید.

نرم افزار سامانه مودیان راهکار
در این پست تصمیم داریم با استفاده از دستور BULK INSERT اطلاعات یک فایل CSV را در یک جدول SQL Server اضافه کنیم.


فایل CSV در مسیر C:\Users\prade\Desktop\Data\TransactionHistory.csv قرار دارد و این مسیر را برای BULK Insert نیاز خواهیم داشت. نام فایل TransactionHistory.csv بوده و 113444 رکورد در آن وجود دارد.

نحوه Bulk Insert در SQL Server . آموزشگاه رایگان خوش آموز

برای Import کردن این اطلاعات با دستور BULK Insert باید یک جدول با مشخصات Header ستون های فایل CSV ایجاد کنیم.

CREATE TABLE TranHistory (TransactionID INT,
ProductID INT,
ReferenceOrderID INT,
ReferecnceOrderLineID INT,
TransactionDate Datetime,
TransactionType CHAR(1),
Quantity Numeric(9,2),
ActualCost Numeric(9,2),
ModifiedDate Datetime)

اگر دستور Select را روی جدولی که ایجاد کرده ایم اجرا کنید، مشاهده می کنید جدول کاملا خالی است.

نحوه Bulk Insert در SQL Server . آموزشگاه رایگان خوش آموز

برای Load کردن اطلاعات فایل سورس(همان فایل CSV) در جدول SQL (جدول مقصد که ایجاد کردیم) دستور BULK INSERT زیر را بنویسید و آن را اجرا کنید.

BULK INSERT TranHistory
FROM 'C:\Users\prade\Desktop\Data\TransactionHistory.csv'
WITH (FIRSTROW = 2,
FIELDTERMINATOR = ',',
ROWTERMINATOR='\n'
);

حالا در خصوص Syntax دستور BULK INSERT که در اسکریپت فوق آن را اجرا کردیم، صحبت می کنیم.
اولین پارامتر BULK INSERT، جدول مقصد می باشد(TranHistory). این بدان معنی است که ما قصد داریم رکوردها انبوهی را از یک فایل متنی، به این جدول اضافه کنیم. پس اولین پارامتر، جدول یا View ی مقصد می باشد که مشخص گردید.
در قسمت FROM، باید مسیر فایل خود را به BULK Insert دهیم.
در خط سوم اسکریپت فوق، FIRSTROW برابر با 2 می باشد. در این جا هدف از این دستور، این است که مشخص کنیم اطلاعات از ردیف دوم به جدول Import شوند. در این مثال، ردیف اول شامل Header ستون ها می باشد که بدان نیازی نداریم و از ردیف دوم که اطلاعات اصلی هستند، باید اطلاعات به جدول اضافه شوند.
در خط بعد باید فرمت فایل را مشخص کنید. این به نوع فایل بستگی دارد. ممکن است بخواهید جداکننده سطر و جداکننده ستون را مشخص کنید که در اینجا , است چرا که فایل ما از نوه comma separated Value یا CSV است و ROWTERMINATOR='\n خاتمه دهنده ردیف پیش فرض است.

نحوه Bulk Insert در SQL Server . آموزشگاه رایگان خوش آموز

پس از اجرای دستور BULK INSERT فوق، همانطر که مشاهده می کنید، 113444 رکورد با موفقیت در جدول اضافه شد. با دستور زیر هم رکوردهایی که اضافه شده اند نمایش داده می شود و هم تعداد آنها شمارش می شود:

SELECT * FROM TranHistory
SELECT COUNT(*) AS TotalRows FROM TranHistory

نحوه Bulk Insert در SQL Server . آموزشگاه رایگان خوش آموز

شما می توانید Bulk Insert را بصورت دسته ای BATCHSIZE هم انجام دهید. در صورت وجود خطا در Bulk Insert همه چیز به حالت اول بر میگردد. با اضافه کردن دسته ای رکودها یا BATCHSIZE در Bulk Insert، اگر دسته ای با مشکل مواجه شود، فقط رکوردهای آن دسته اضافه نمی شوند و سایر دسته ها کار خود را انجام می دهند. بصورت پیشفرض همه اطلاعاتی که در فایل مورد نظر هستند، همگی یک دسته یا batch هستند. با مشخص کردن BATCHSIZE، اطلاعات فایل به Batch هایی تقسیم می شود. اکنون دستور فوق را با مشخص BATCHSIZE، دسته بندی می کنیم. BATCHSIZE را برابر با 40000 قرار می دهیم. یعنی فایل مذکور در دسته های 40000 تایی به SQL Server اضافه می شوند و اگر خللی در هر batch رخ دهد، تاثیری روی کار سایر Bulk Insert ها نخواهد داشت.

نحوه Bulk Insert در SQL Server . آموزشگاه رایگان خوش آموز


نمایش دیدگاه ها (1 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز