Home
ยินดีต้อนรับสู่ DEV24x7 : เขียนโปรแกรม(.Net) , ระบบฐานข้อมูล(Database) SQL Server
สวัสดี เป็นเกียรติยิ่งที่ได้พบกันนะครับ ยินดีต้อนรับผู้ไฝ่รู้ทุกท่าน ได้ฤกษ์เสียทีกับ blog การเขียนโปรแกรมและระบบฐานข้อมูล(Database) SQL Server อันเกี่ยวข้องกับสายงานโดยตรงของผู้เขียน หลังจากที่มีแนวความคิดว่าจะทำมานานมากแล้ว แต่โอกาสไม่เหมาะเสียที มัวแต่เอาเวลาไปเขียนอย่างอื่นอยู่ แต่ไม่เป็นไร(เน๊าะ) เริ่มช้าหน่อย ดีกว่าไม่ได้เริ่มเสียที เห็นด้วยหรือเปล่าครับ

สอนเขียนโปรแกรม(Programming)
เจตนารมณ์สำหรับ blog นี้คือ ต้องการถ่ายทอดข้อมูลต่าง ๆ ในสายงานการเขียนโปรแกรมและความรู้ระบบฐานข้อมูล(เน้นไปที่ .Net กับ SQL Server) อันเป็นสายงานที่ผู้เขียนคุกคลีอยู่ทุกเมื่อเชื่อวัน ถ้าความรู้และประสบการณ์ต่าง ๆ ที่ผู้เขียนได้รับมาในงานเขียนโปรแกรม ถูกนำไปใช้แค่เพียงเพื่อเอาตัวรอดคนเดียว(ทำงานประจำอย่างเดียว) ผู้เขียนรู้สึก “เสียดายของ“ สิ่งเหล่านี้มันน่าจะมีประโยชน์กับผู้คนในวงกว้างซะบ้าง โดยเฉพาะสำหรับน้อง ๆ ทั้งที่เป็นนักศึกษา วิทย์-คอมฯ, MIS หรือ คอมฯ ธุรกิจ รวมไปถึงน้อง ๆ นักศึกษาจบใหม่ Junior Programmer ทั้งหลาย น่าจะได้ประโยชน์จาก blog นี้ แต่ก็ใช่ว่า มือเก่า ๆ เก๋า ๆ จะไม่ได้ประโยชน์นะครับ ผู้เขียนจะพยายามเอาเกร็ดเล็กเกร็ดน้อยที่ได้พบเจอในงานที่ทำ มาถ่ายทอดไว้ บางท่านอาจจะรู้อยู่แล้ว บางท่านอาจจะลืมไปแล้ว หรือบางท่านอาจจะยังไม่รู้ ก็ไม่เป็นไรครับ ถือว่าเรามาแชร์กันดีกว่า
เนื้อหาใน blog จะแบ่งเป็น 2 ส่วนหลัก ๆ คือ การเขียนโปรแกรม(Programming) ขออภัยไว้ก่อนนะครับ ผู้เขียนถนัด C# .Net และคงจะยกตัวอย่างด้วยภาษานี้ และอีกส่วนหนึ่งก็คือ ระบบฐานข้อมูล(Database) ส่วนนี้ก็เน้นไปที่ SQL Server Database ที่ผู้เขียนถนัดอีกเช่นกัน(แหะ ๆ)

ระบบฐานข้อมูล SQL Server
อย่างที่เกริ่นไว้ เนื้อหาด้านการเขียนโปรแกรมกับความรู้เรื่องฐานข้อมูล(Database) ที่อยู่ใน blog นี้จะมีประโยชน์มากสำหรับน้อง ๆ นักศึกษาและ Junior Programmer ทั้งหลาย เนื้อหาส่วนใหญ่จะเป็นเรื่องพื้น ๆ เสียมากกว่า แต่อาจจะมีส่วนที่เป็นเชิงลึกมาผสมผสานบ้างตามแต่ว่าผู้เขียนได้ความรู้อะไรที่น่าจะมีประโยชน์มาเพิ่มเติม อาจจะคล้าย ๆ บันทึกช่วยจำของผู้เขียน แต่ก็หวังเป็นอย่างยิ่งว่ามันจะมีประโยชน์กับผู้อ่านบ้าง ไม่มากก็น้อย
สุดท้ายแล้วใครจะได้อะไรไปจาก blog นี้บ้าง ก็คงขึ้นอยู่ที่ตัวท่าน ๆ เองแล้วล่ะ ผู้เขียนมีหน้าที่ถ่ายทอดออกไป แต่ถ้าท่านได้อย่างจะแนะนำ ติ-ชม หรืออยากให้เพิ่มเติมเนื้อหาส่วนใด แนะนำกันมาได้เลย(comment post) หรือถ้าหากพบส่วนใดของบทความที่ท่านมีความรู้อยากจะเพิ่มเติม post comment ได้เลย และอาจจะนำมาขึ้นเป็นหัวข้อใหม่แบ่งปันกัน แล้วให้ credit ท่านด้วย กรณีที่ท่านรู้สึกว่าผู้เขียนเข้าใจผิด ติติงได้เลยนะครับ เพื่อประโยชน์ของผู้อ่านส่วนใหญ่ ผู้เขียนพร้อมน้อมรับได้ความรู้สึกเป็นเกียรติครับ
วัชรากร @Dev24x7.com
บทความแนะนำ หมวดการเขียนโปรแกรม(Programming)

หลักการพื้นฐานในการเขียนโปรแกรม คืออะไร?"... คงจะมีหลาย ๆ คนสงสัยว่าโดยเฉพาะน้อง ๆ ที่เพิ่งจะเริ่มก้าวเข้ามาสู่วงการเขียนโปรแกรม หรือเพิ่งจะหันมาสนใจงานด้านเขียนโปรแกรม วันนี้เราจะมาคุยกันเรื่องนี้แหละครับ
บอกไว้ก่อนนะครับ อย่าพยายามตามหาบทความที่เป็นหลักวิชาการ... ที่นี่ไม่มีครับ บล็อกแนวนั้นมีเยอะแล้วครับ ผมเพียงแค่อยากจะมาเสริมในส่วนที่ไม่ค่อยจะไม่ใครถ่ายทอดให้ทราบ... เรื่องของประสบการณ์ในงานเขียนโปรแกรมจริง ๆ อันนี้ต่างหากครับ ที่ไม่ค่อยมีใครเขียนถึง... เอาล่ะ มาว่ากันที่หัวข้อของเราต่อ "หลักการพื้นฐานในการเขียนโปรแกรม คืออะไร?"... ผมตอบแบบสั้น ๆ ให้ครับ มันคือ "ตรรกะ" หรือ "Logic" สั้น ๆ เลยนะ
"ตรรกะ" คือ แนวคิด วิธีคิด แนวทางแก้ปัญหา หรืออะไรก็ตามช่างมันเถอะ เอาเป็นเข้าใจง่าย ๆ นะครับ มันคือการที่เราได้รับโจทย์มาให้เขียนโปรแกรม
read more

ตามหัวเรื่องเลยนะ... "สวัสดีครับ" ทั้งท่านนักเขียนโปรแกรม(Programmer) หรือท่านที่กำลังจะเป็น รวมไปถึงทุกท่านที่อยากจะเป็นนักเขียนโปรแกรม ยินดีจริง ๆ ครับ ได้เริ่มหัวข้อแรกเสียที... ว่าแต่จะกล่าวทักทายกันเฉย ๆ น่ะเหรอ! เปล่าหรอกครับ จริง ๆ ตั้งใจจะคุยเรื่องทั่ว ๆ ไปเกี่ยวกับการเป็น programmer ซะมากกว่า บอกไว้ก่อนว่าหัวข้อนี้คงจะเหมาะกับน้อง ๆ ที่เป็นนักศึกษาอยู่นะครับ เพราะพวกแก่ ๆ เก๋า ๆ คงจะทราบกันดีอยู่แล้ว เอาเป็นว่า เริ่มกันเลยดีกว่า(เน๊อะ)
เคยได้ยินคำถามนี้หรือเปล่าครับ "ทักษะกับทัศนคติ อันใหนสำคัญกว่ากัน?" สงสัยล่ะสิว่าผู้เขียนจะถามทำไม... คืออย่างนี้ครับ งานเขียนโปรแกรมจัดอยู่ในกลุ่มของ "งานรับทำของ"(งานอีกประเภทคืองานที่ทำจบไปวันต่อวันหรือที่เรียกว่า "routine") timeline หรือระเวลาการทำงานหนึ่ง ๆ จะค่อนข้างยาว(ถึงยาวมาก) ถึงได้ถามว่า "ทักษะกับทัศนคติ อันใหนสำคัญกว่ากัน?"... สายงานการเขียนโปรแกรม...
read more
บทความแนะนำ หมวดฐานข้อมูล(Database) SQL Server

หลาย ๆ ท่าน โดยเฉพาะท่านที่ทำหน้าที่ DBA(Database Administrator) คงจะเคยเจอกับปัญหาการย้าย Stored Procedure, Function หรือ View จาก database ก้อนหนึ่งไปยังอีกก้อนหนึ่งแน่ ๆ เคสของปัญหานี้ก็ตัวอย่างเช่น เรามี database อยู่ 2 ก้อน ก้อนแรกเป็น database ที่ลูกค้าใช้งานจริง ๆ มีข้อมูลจริง ๆ กับอีกก้อนหนึ่งที่เป็น database ที่ใช้ในการ develop เพิ่มเติม ซึ่งตัวหลังนี้จะมีส่วนที่เปลี่ยนแปลงจากก้อนแรกหลาย ๆ อย่างเช่น โครงสร้าง table, มีการแก้ไข Stored Procedure เป็นต้น
จากตัวอย่างข้างต้น วันนี้จะขอคุยเฉพาะเรื่องของการ copy สิ่งที่เรียกว่า "Programmability" ของ SQL Server อันได้แก่ Stored Procedure, Function และ View...
read more

ต่อเนื่องจาก topic ก่อนหน้านี้ที่เกี่ยวกับ การแก้ไขชื่อคอลัมน์ด้วยคำสั่ง sql หลังจากที่เราแก้ไขชื่อคอลัมน์แล้ว มักจะเกิดปัญหาต่อมาคือ Stored Procedure, Function, View, Trigger หรืออื่น ๆ มันยังเรียกใช้ชื่อ column เดิมก่อนที่เราจะแก้ไข ปัญหานี้พบบ่อยมาก ๆ และเป็นปัญหาใหญ่หากว่างานที่เราทำนั้น มี stored procedure เป็นร้อย ๆ ตัว เอาล่ะสิคราวนี้!
น่าจะทราบกันอยู่แล้วว่า ทุก ๆ อย่างที่เราทำกับ database ใน SQL Server จะมีการจัดเก็บลงไปในสิ่งที่เรียกว่า System Tables ทั้งการสร้าง column, เขียน Stored Procedure, เขียน Function, สร้าง View หรืออื่น ๆ ทั้งหมดที่ว่ามาจะถูกเก็บลง System Tables...
read more

หลาย ๆ ท่านที่ใช้งานระบบฐานข้อมูลที่เกี่ยวข้องกับการออกแบบฐานข้อมูลคงจะเคยเจอปัญหาเรื่อง "ชื่อคอลัมล์ผิด" ท่านแก้ไขแบบใหนครับ เข้าไปที่ design ของ table แล้วแก้ไขชื่อคอลัมล์กันตรง ๆ ใช่เปล่า? คำถามคือ ถ้ามันผิดหลาย ๆ table สัก 20 table ล่ะ! เอาล่ะสิ!
อีกเคสหนึ่งครับ ถ้า software ที่เราเขียนถูกทำ production แล้ว ส่งให้ลูกค้าใช้แล้ว และที่สำคัญ เราออกจากไซท์งานลูกค้ามาแล้วด้วย ทำไงดีล่ะครับ เราแก้ไข application แล้ว build ส่งให้ฝ่าย IT ของลูกค้า update ให้ ทำได้ครับ ส่ง SQL script ให้ IT ของลูกค้า run ลงไปใน database อันนี้ก็ทำได้ แต่คุณจะกล้าให้ IT ของลูกค้าเปิดเข้าไปแก้ไขโครงสร้าง database หรือเปล่าครับ??
ใช่แล้ว! ถ้าเราจัดการทุกอย่างเป็น SQL script ได้ก็ดีเลยใช่หรือเปล่า เราจะมาว่ากันตรงนี้แหละครับ
read more