การเขียน store procedure บน ms sql server ตอนที่ 5 การสร้าง Store procedure แบบ รับ เงื่อนไข อิสระ
หน้าแรก SQL Server การเขียน store procedure บน ms sql server ตอนที่ 5 การสร้าง Store procedure แบบ รับ เงื่อนไข อิสระ
ก็มาถึงบทความเรื่อง store procedure ในตอนที่ 5 แล้วนะครับ
ในเนื้อหาที่เป็นพื้นฐานจริงๆ นั้นจบไปตั้งแต่ บทความตอนที่ 4 แล้วนะครับ เพราะ วิธีการเขียน t-sql control structure พวก if , while ที่จำเป็นต้องใช้ในการสร้าง store procedure แบบ Advance ผมจะค่อยๆ เขียนมาเพิ่มทีหลังครับ
ในตอนนี้ที่ 5 นี้ก็จะเป็นการประยุกต์สร้าง store procedure ให้ยืดหยุ่น เพิ่มขึ้นเท่านั้นนะครับเป็นเทคนิคเล็กๆ เฉยๆ เกี่ยวกับการใส่เงื่อนไขให้ store procedure นะครับ ลองดูครับ
ตอนพิเศษ1 เรื่อง Store procedure การสร้าง Store procedure แบบ รับ เงื่อนไข อิสระ
จาก Store Procedure ที่ผ่านมา หากเราต้องการ ใช้เงื่อนไขที่อยาก ใส่เองแบบอิสระ จะทำไม่ได้ เนื่องจาก เรา ไม่สามารถใส่ชุดคำสั่ง Where ตามที่เราต้องการได้ เพื่อให้ Store procedure ที่เราสร้างยืดหยุ่น ขึ้นไปอีก จึงเป็นที่มาของ บทความตอนนี้นะครับ
ตัวอย่างการสร้าง Store Procedure สำหรับ กำหนดเงื่อนไขอิสระ
| Code |
| create procedure sp_select_filter_employee( @condition varchar(500)='', @order varchar(100)='emp_code' ) AS BEGIN EXEC( 'select * from tbl_employee ' + @condition + ' ' + 'order by '+ @order ) END |
จะเห็นว่า มีการสร้าง parameter @condition ขนาด 500 ตัวอักษร เพื่อให้เรา สามารถใส่เงื่อนไข Where ได้อย่างอิสระ จริงๆ และ มี parameter @order สำหรับ sort ข้อมูลเช่นกัน
มาดูตัวอย่างการใช้งานบ้างนะครับ
| Code |
| Declare @condition varchar(500),@order varchar(100) set @condition='where (emp_code + '' '' + emp_name + '' '' + emp_surname) like ''%เจริญ%''' set @order='emp_name' exec sp_select_filter_employee @condition,@order |
หมายเหตุ จากตัวแปร @condition ที่เรากำหนด สำหรับ field ทีเป็น string เราจะต้องใส่ ' ครอบ ตัวอักษร เพื่อเปรียบเทียบข้อมูล แต่ในที่นี้ ให้เราเพิ่มเป็น '' 2 ตัว เช่น
set @condition='where emp_name=''สราวุธ'''
refer: http://devzonedd.designweb2you.com/viewthread.php?tid=84&extra=page%3D1
ขึ้นไปด้านบน
