วิธีเรียกใช้งาน Stored Procedure และ User Defined Function ข้ามฐานข้อมูล

อัพเดท 04 เมษายน 2557 15:06 - อ่าน 5,449 - หมวดหมู่ เรียนรู้คำสั่งจัดการข้อมูลใน SQL Server


หากเราใช้งาน  Stored Procedure และ User Defined Function (UFD) ภายในฐานข้อมูลเดียวกัน สามารถเรียกใช้งาน Stored Procedure และ UFD ได้ทันที แต่หากว่าเราต้องการเรียกใช้งาน Stored Procedure ที่อยู่ฐานข้อมูลอื่น จะวิธีวิธีเรียกใช้งานอย่างไร และหากว่าเราต้องการที่จะสร้าง Stored Procedure และ User Defined Function ที่สามารถใช้งานได้ทุก ๆ ฐานข้อมูลมีวิธีสร้างอย่างไร มาดูวิธีทำกันเลยครับ !!!



หากเรามีสโตร์โพรซีเยอร์ Stored Procedure ชื่อ sp_test ที่อยู่ในฐานข้อมูล db1 แต่ต้องการเรียกใช้งานในฐานข้อมูล db2 มีวิธีเรียกใช้งานได้ง่าย ๆ โดยเราต้องระบุชื่อฐานข้อมูลขึ้นหน้าก่อนตัวอย่างเช่น

EXEC db1.dbo.sp_test(100)

เพียงแค่นี้ระบบจะไปเรียกใช้งานและประมวลผล sp_test ที่อยู่ในฐานข้อมูล db1 เป็นที่เรียบร้อย หากเราไม่ระบุ db1.dbo นำหน้าระบบจะทำการค้นหา Stored Procedure ในฐานข้อมูล db2 หากไม่พบจะแจ้ง Error ออกมา โดยรูปแบบการเรียกใช้คล้าย ๆ ก็จะคล้าย ๆ กับการเรียกใช้งานตารางหรือวิวที่อยู่ฐานข้อมูลอื่นๆ นั่นเอง

แต่หากเราต้องการที่จะสร้าง Stored Procedure และ User Defined Function ให้สามารถเรียกใช้งานได้ทุกฐานข้อมูลโดยไม่ต้องระบุชื่อฐานข้อมูลก่อน ซึ่งจะคล้าย ๆ กับ Stored Procedure ที่มีอยู่แล้วในระบบ เราก็สามารถสร้างขึ้นมาใช้งานเองได้ แต่ต้องสร้างStored Procedure และ User Defined Function ในฐานข้อมูล master เท่านั้น เมื่อสร้างเสร็จเรียบร้อยแล้วทุกฐานน้อมูลก็จะสามารถมองเห็นได้

โดยการสร้าง Stored Procedure และ User Defined Function ในฐานข้อมูล master มีหลักการตัั้งชื่อที่ต้องเป็นไปตามกฏของ SQL Server นั่นคือหากเป็นชื่อของ Stored Procedure จะต้องขึ้นต้นด้วย sp_ หากเป็น User Defined Function ก็ต้องขึ้นต้นด้วย fn_ เสมอ

และเมื่อสร้างเสร็จเรียบร้อยแล้วต้องเปลียนชื่อ owner ให้เป็น system ด้วยทุกครั้งโดยต้องใช้คำสั่ง EXEC sp_changeobjectowner ตัวอย่างการใช้งานมีดังนี้

CREATE FUNCTION fn_compute(@num1 int, @num2 int)

RETURN int

AS

BEGIN

              RETURN @num1+@num2

END

EXEC sp_changeobjectowner   'fn_compute', ' system_function_schema'

Go


และหากเราต้องการแก้ไขข้อมูล
Stored Procedure และ User Defined Function ที่มีอยู่ในฐานข้อมูลมาสเตอร์ก็ต้องปลดล็อกให้สามารถแก้ไขได้โดยใช้คำสั่ง EXEC sp_configure มีวิธีใชังานดังต่อไปนี้

EXEC sp_configure 'fn_compute', 1

เมื่อแก้ไขเสร็จเรียบร้อยแล้วให้แก้ไขสถานะเป็น 0 เหมือนเดิมเพื่อป้องกันการแก้ไขข้อมูลโดยไม่ได้ตั้งใจ

EXEC sp_configure 'fn_compute', 0

ในการสร้าง แก้ไข และลบ Stored Procedure และ User Defined Function ที่มีอยู่ในระบบจะต้องทำอย่างรอบคอบมากเนื่องจากฐานข้อมูล master นั้นเป็นฐานข้อมูลหลักที่ทุก ๆ ฐานข้อมูลทุกตัวมีการเรียกใช้งานอยู่ตลอดเวลา หากเราแก้ไขข้อมูลผิดพลาดแล้วอาจจะทำให้การทำงานของระบบผิดเพี้ยนไปได้ครับ



Tag: วิธีเรียกใช้งาน User Defined Function จากฐานข้อมูลอื่น, เรียกใช้งาน Stored Procedure ข้ามฐานข้อมูล



ร่วมแสดงความคิดเห็น
ชื่อ :
ข้อความ : emo1 emo2 emo3 emo4 emo5 emo6 emo7 emo8 emo9 emo10 emo11 emo12 emo13 emo14 emo15
emo16 emo17 emo18 emo19 emo20 emo21 emo22 emo23 emo24 emo25 emo26 emo27 emo28 emo29 emo30 emo31


- หากต้องการใส่รูปคลิกซ้ายที่รูปภาพได้เลย :)
- ขึ้นบรรทัดใหม่โดยการกด Enter จะทำให้ข้อความไม่ยาวจนเกินไป :)
บวกกันให้ด้วยนะ :
Security Code
 

คอมเม้นท์ทั้งหมด 0 คอมเม้นท์
ค้นหาข้อมูลสุขภาพ


หมวดหมู่
โพสต์ล่าสุด
โค้ดการคิดคำนวณเกรดภาษา VB.NET และ C#.NET (ดู: 15,689)
วิธีใช้งาน BETWEEN ร่วมกับ Datetime ใน SQL Server (ดู: 6,835)
วิธีการใช้งาน Remote Desktop Connection บน Windows พร้อมทั้งการโอนย้ายไฟล์ระหว่างเครื่อง (ดู: 4,382)
คำสั่งคอเม้นท์ใน C# และ VB.NET (ดู: 7,830)
การใช้งานคำสั่ง try catch ในภาษา C#.NET และ VB.NET (ดู: 11,055)
การใช้งานคำสั่ง region ในภาษา C#.NET และ VB.NET (ดู: 5,791)
โค๊ดสำหรับส่งอีเมล์ใน Visual Studio ด้วยภาษา C# และ VB (ดู: 6,187)
วิธีทําตัวเซ็ตอัพสำหรับ Visual Studio 2010 (ดู: 6,365)
การออกแบบส่วนต่าง ๆ ของโปรเจ็คใน ASP.NET (ดู: 4,825)
ประเภทของตัวแปรในภาษา C#.NET (ดู: 3,801)
วิธีใช้คำสั่ง Select Case ใน VB.NET และ C#.NET (ดู: 9,693)
วิธีใช้คำสั่ง do while ใน VB.NET และ C#.NET (ดู: 7,814)
วิธีใช้คำสั่ง while ใน VB.NET และ C#.NET (ดู: 3,599)
วิธีใช้งานคำสั่ง for สำหรับวนลูปใน C#.NET และ VB.NET (ดู: 7,771)
วิธีเรียกใช้งาน Stored Procedure และ User Defined Function ข้ามฐานข้อมูล (ดู: 5,450)
วิธีใช้งาน User Defined Function ซ้อน User Defined Function (ดู: 3,478)
คำสั่งในการแก้ไข เปลี่ยนชื่อ และลบ User Defined Functions (ดู: 3,005)
วิธีการใช้งาน User Defined Function ประเภท Multi-Statement Table-valued Function (ดู: 2,788)
การใช้งาน User Defined Function ประเภท Inline Table-valued Function (ดู: 2,570)
การใช้งาน User Defined Function ประเภท Scalar Function (ดู: 3,058)
ทำความรู็จักกับ User Defined Function บน SQL Server (ดู: 4,083)
วิธีใช้งานคำสั่ง RAISERROR ใน SQL Server (ดู: 3,747)
การใช้คำสั่ง RETURN ใน SQL Server (ดู: 3,357)
วิธีการใช้คำสั่ง Print และ GOTO ใน SQL Server (ดู: 3,804)
วิธีการคอมเม้นท์ใน SQL Server (ดู: 3,735)
การประกาศตัวแปรด้วยคำสั่ง DECLARE ใน SQL Server (ดู: 11,719)
การใช้คำสั่ง While สำหรับวนลูปใน SQL Server (ดู: 7,247)
วิธีใช้งานคำสั่ง CASE ใน SQL Server (ดู: 15,161)
การใช้งาน IF ELSE ใน SQL Server (ดู: 8,387)
คำสั่งในการสร้าง แก้ไข และลบ Stored Procedures (ดู: 4,301)
www.SiamCoding.com เว็บสอนเทคนิคการเขียนโค๊ด ASP.NET ทริปคอมพิวเตอร์ และแวดวงข่าวไอทีทั่วทุกมุมโลก
สงวนลิขสิทธิ์ © 2555 SiamCoding.com Copy Right 2012 เข้าสู่ระบบ