เพื่อหลีกเลี่ยงการสูญเสีย/สร้างความเสียหายให้กับ Stored Procedures ที่คุณได้ทำงานอย่างหนักเพื่อสร้าง หรือหากคุณต้องการคืนค่าเป็น Stored Procedures เวอร์ชันก่อนหน้า นี่เป็นวิธีการที่มีประสิทธิภาพในการสำรองข้อมูล Stored Procedures โดยอัตโนมัติตามที่ระบุ ฐานข้อมูล
1. สร้างตารางข้อมูล StoredProceduresBackup บนฐานข้อมูลเฉพาะ (แนะนำให้เป็นฐานข้อมูลหลักของ SQL Server) เพื่อบันทึก Stored Procedures สำรอง
ถ้า OBJECT_ID('StoredProceduresBackup') ไม่เป็นโมฆะ
DROP TABLE StoredProceduresBackup
GO
สร้างตาราง StoredProceduresBackup
(
AutoID INTEGER IDENTITY(1,1) คีย์หลัก,
InsertDate DATETIME DEFAULT GETDATE(),
DatabaseName VARCHAR(50),
ProcedureName VARCHAR(50),
ProcedureText VARCHAR(4000)
)
GO
2. สร้าง Stored Procedure ชื่อ usp_ProceduresVersion
ในหมู่พวกเขาส่วนใหญ่เข้าถึงตารางระบบ sysobjects และ syscomments:
(1) ตารางระบบ sysobjects
ประกอบด้วยหนึ่งแถวสำหรับแต่ละวัตถุ (ข้อจำกัด ค่าเริ่มต้น บันทึก กฎ ขั้นตอนการจัดเก็บ และอื่นๆ) ที่สร้างขึ้นภายในฐานข้อมูล ใน tempdb เท่านั้น ตารางนี้จะรวมแถวสำหรับวัตถุชั่วคราวแต่ละรายการ
(2) ตารางระบบข้อคิดเห็นระบบ
ประกอบด้วยรายการสำหรับแต่ละมุมมอง กฎ ค่าเริ่มต้น ทริกเกอร์ ข้อจำกัดในการตรวจสอบ ข้อจำกัดเริ่มต้น และขั้นตอนการจัดเก็บ คอลัมน์ข้อความประกอบด้วยคำสั่งคำจำกัดความ SQL ดั้งเดิม ซึ่งจำกัดขนาดสูงสุด 4 MB ตารางนี้ถูกจัดเก็บไว้ในแต่ละฐานข้อมูล .
(3) สคริปต์ต้นฉบับของขั้นตอนการจัดเก็บ
/*
ชื่อ: usp_ProceduresVersion
คำอธิบาย: สำรองข้อมูลขั้นตอนการจัดเก็บที่ผู้ใช้กำหนด
ผู้แต่ง:
บันทึกการแก้ไข Rickie: NO
คำอธิบาย วันที่เปลี่ยนโดย
ขั้นตอนที่สร้างขึ้น 27/8/2547 Rickie
*/
สร้างขั้นตอน usp_ProceduresVersion @DatabaseName NVARCHAR (50)
ตาม
ที่ตั้งไว้
--นี้จะเก็บสตริงแบบไดนามิก
DECLARE @strSQL NVARCHAR(4000)
--ตั้งค่าสตริง
--เฉพาะขั้นตอนที่เก็บไว้
SET @strSQL = 'INSERT INTO master.dbo.StoredProceduresBackup(
DatabaseName,ProcedureName,ProcedureText )
SELECT ''' + @DatabaseName + ''', so.name, sc.text
FROM ' + @DatabaseName + '.dbo.sysobjects ดังนั้น
INNER JOIN ' + @DatabaseName + '.dbo.syscomments sc
ON so.id = sc.id
WHERE so.type = ''p''' + ' and so.status>0
สั่งซื้อทาง so.id'
--ดำเนินการสตริง
EXEC dbo.sp_executesql @strSQL
GO
3. สร้างงานและดำเนินการ Stored Procedure ข้างต้น
เพื่อสร้างงานบน SQL Server และตั้งค่าแผนการทำงานเพื่อให้สามารถสำรองข้อมูล Stored Procedures ของฐานข้อมูลที่ระบุไปยังตารางข้อมูลด้านบนได้โดยอัตโนมัติ
ตกลง นั่นคือทั้งหมดที่ หากมีคำถามใดๆ เกี่ยวกับเรื่องนี้ โปรดติดต่อฉันได้ที่ [email protected] ขอให้โชคดี