การเขียน store procedure บน ms sql server ตอนที่ 4 การเขียน Store procedure แบบ Return ค่ากลับ
หน้าแรก SQL Server การเขียน store procedure บน ms sql server ตอนที่ 4 การเขียน Store procedure แบบ Return ค่ากลับ
3. Stored Procedures แบบ Return ค่ากลับ
การสร้าง store procedure แบบ return ค่ากลับมานั้น ก็สามารถทำได้ ซึ่งปกติแล้วการ return store procedure นั้นเราจะใช้เพื่อตรวจสอบสถานะของ Store procedure เท่านั้น เนื่องจากมันคืนค่ากลับมาเป็น interger และ จะ return กลับมาได้เพียง 1 ค่า (ยกเว้น เราจะใช้วิธี การ ใช้ร่วมกับ output parameter)
| Code |
| -- การสร้าง Stored Procedure return ค่ากลับ Create Procedure sp_fullemployee_by_emp_code ( @parameter1 datatype , @parameter2 datatype=Default Value, @parameter3 datatype output, ) As BEGIN Declare @num int @num=คำสั่ง Sql Statement RETURN @num END |
ตัวอย่างเช่น
การสร้าง Store procedure เพื่อ Update ข้อมูล Employee จะมีการ Return ค่า @@error กลับมาเพื่อให้ทราบว่าสถานะของ Store procedure นั้นทำงานเป็นอย่างไร
(ค่า 0 ไม่พบ error แต่หากพบ error เราสามารถใช้ View sys.messages เพื่อหาดูได้ว่า เกิดจาก error อะไรเช่น
select * from sys.messages where message_id=8134 and language_id=1033
ขออธิบาย ซักนิด message_id คือ หมายเลข error id ที่ได้จาก @@error และ language_id คือ ภาษา 1033 เป็น us_english)
| Code |
| create procedure sp_update_employee ( @emp_code varchar(5) , @emp_name varchar(50) , @emp_surname varchar(50) , @emp_tel varchar(20)='-' , -- กำหนดค่าเริ่มต้นเป็น - @emp_email varchar(60)='-' , -- กำหนดค่าเริ่มต้นเป็น - @dep_code varchar(2)='01' -- กำหนดค่าเริ่มต้นเป็นฝ่าย Account ) AS BEGIN Update tbl_employee set emp_name = @emp_name , emp_surname=@emp_surname , emp_tel = @emp_tel , emp_email=@emp_email , dep_code=@dep_code Where emp_code=@emp_code Return @@error END |
| Code |
| -- การเรียกใช้งาน การ update ข้อมูล employee Declare @err int exec @err=sp_update_employee 'E0005','นาย บางนา','นามสกุล ถนน' ,@dep_code='03' select @err |
ผลลัพท์ที่ได้จะไม่พบ Error เนื่องจาก การประมวลผลถูกต้อง
refer: http://devzonedd.designweb2you.com/viewthread.php?tid=83&extra=page%3D1
ขึ้นไปด้านบน
