Home > SQL Server Integration Service > การ Load Excel File ใน SSIS

การ Load Excel File ใน SSIS


System Requirement

  • SQL Server Integration Services 2005 หรือ 2008
  • Sample file download

มาตามคำเรียกร้อง

จากที่มีคำถามมาใน guest book เกี่ยวกับการ Import file Excel และต้องการที่จะให้มีการตรวจสอบว่ามี record หรือไม่นั้น สามารถทำได้โดยใช้ Row Count ครับ หลังจากนั้นเราก็สามารถใช้ File System Task เพื่อทำการลบหรือย้าย folder แต่มีเงื่อนไขตรงที่ว่า Excel File นั้น จะต้องไม่มี Record อยู่เลย มีขั้นตอนง่ายๆ ดังนี้ครับ

เริ่มจากการ new project ขึ้นมาใหม่ แล้วสร้าง Control Flow ดังนี้

จากนั้นสร้าง Data Flow โดยเพิ่ม Row Count เข้าไป

โดยมี Transformation ที่เพิ่มเข้ามาคือ Row Count หลักการของผมก็คือจะใช้ Row count เพื่อนับจำนวน Record ถ้า record ไม่ใช่ 0 ก็สามารถดำเนินขั้นตอนต่อไปได้คือ load data แต่ถ้าเป็น 0 record ก็ให้หยุดการทำงานทันทีครับ

ขั้นตอนต่อไปให้ทำการ สร้างตัวแปร เพื่อเก็บ row count ขอเน้นว่าต้องเป็น package scope นะครับ

หลังจากนั้นก็เข้าไปแก้ไข Row Count โดยทำการ Set Output ให้กับตัวแปร ดังนี้

ทีนี้เราก็จะเข้าไปตั้งเงื่อนไข โดยออกไปสร้างที่ Control Flow โดยเชื่อม Data Flow Task กับ File System Task ในที่นี้อาจจะตั้งเงื่อนไขว่าถ้า Row Count = 0 ให้ลบไฟล์ทิ้ง

โดยเขียนสูตร ดังนี้ครับ

หลังจากนั้นลอง run package ดู

ในตอนแรกจะได้ผลลัพธ์คือจะไม่ run file system task ครับ เพราะว่า นับ row count ได้เกิน 0 record

ต่อไปผมจะทดลองโดยการลบ Record ทั้งหมด ที่อยู่ใน Excel ครับ ให้เหลือ 0 Record

แล้วลองรันดูอีกครั้งหนึ่ง ตามคาดครับ คราวนี้ File System จะทำงานครับ ในทางปฏิบัติ เราอาจจะกำหนดให้ File System Task ทำการลบ หรือย้ายไฟล์ก็ได้ครับ

หลักสูตรอบรม SQL Server (Click)

  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: