กระบวนงานที่เก็บไว้ของ SQL สำหรับ SQL Server
ขั้นตอนการจัดเก็บคืออะไร?
กระบวนงานที่เก็บไว้คือโค้ด SQL ที่เตรียมไว้ซึ่งคุณสามารถบันทึกได้ ดังนั้นโค้ดดังกล่าวจึงสามารถนำมาใช้ซ้ำได้ซ้ำแล้วซ้ำอีก
ดังนั้นหากคุณมีแบบสอบถาม SQL ที่คุณเขียนซ้ำแล้วซ้ำอีก ให้บันทึกเป็นกระบวนงานที่เก็บไว้ แล้วเรียกใช้เพื่อดำเนินการ
คุณยังสามารถส่งพารามิเตอร์ไปยังกระบวนงานที่เก็บไว้ เพื่อให้กระบวนงานที่เก็บไว้สามารถดำเนินการตามค่าพารามิเตอร์ที่ส่งผ่าน
ไวยากรณ์กระบวนงานที่เก็บไว้
CREATE PROCEDURE procedure_name
AS
sql_statement
GO;
ดำเนินการขั้นตอนการจัดเก็บ
EXEC procedure_name;
ฐานข้อมูลสาธิต
ด้านล่างนี้คือการเลือกจากตาราง "ลูกค้า" ในฐานข้อมูลตัวอย่าง Northwind:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 |
Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 |
Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
ตัวอย่างกระบวนงานที่เก็บไว้
คำสั่ง SQL ต่อไปนี้สร้างกระบวนงานที่เก็บไว้ชื่อ "SelectAllCustomers" ที่เลือกระเบียนทั้งหมดจากตาราง "ลูกค้า":
ตัวอย่าง
CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO;
ดำเนินการขั้นตอนการจัดเก็บข้างต้นดังต่อไปนี้:
ตัวอย่าง
EXEC SelectAllCustomers;
กระบวนงานที่เก็บไว้ด้วยหนึ่งพารามิเตอร์
คำสั่ง SQL ต่อไปนี้จะสร้างกระบวนงานที่เก็บไว้ซึ่งเลือกลูกค้าจากเมืองใดเมืองหนึ่งจากตาราง "ลูกค้า":
ตัวอย่าง
CREATE PROCEDURE SelectAllCustomers
@City nvarchar(30)
AS
SELECT * FROM Customers WHERE
City = @City
GO;
ดำเนินการขั้นตอนการจัดเก็บข้างต้นดังต่อไปนี้:
ตัวอย่าง
EXEC SelectAllCustomers @City = 'London';
กระบวนงานที่เก็บไว้ด้วยพารามิเตอร์หลายตัว
การตั้งค่าหลายพารามิเตอร์ทำได้ง่ายมาก เพียงระบุพารามิเตอร์แต่ละรายการและประเภทข้อมูลที่คั่นด้วยเครื่องหมายจุลภาคดังที่แสดงด้านล่าง
คำสั่ง SQL ต่อไปนี้จะสร้างกระบวนงานที่เก็บไว้ซึ่งเลือกลูกค้าจากเมืองใดเมืองหนึ่งด้วยรหัสไปรษณีย์เฉพาะจากตาราง "ลูกค้า":
ตัวอย่าง
CREATE PROCEDURE SelectAllCustomers
@City nvarchar(30), @PostalCode nvarchar(10)
AS
SELECT * FROM Customers WHERE
City = @City AND PostalCode = @PostalCode
GO;
ดำเนินการขั้นตอนการจัดเก็บข้างต้นดังต่อไปนี้:
ตัวอย่าง
EXEC SelectAllCustomers @City = 'London', @PostalCode = 'WA1 1DP';