Untuk menghindari kehilangan/kerusakan secara tidak sengaja Stored Procedures yang telah Anda buat dengan susah payah, atau jika Anda ingin memulihkan ke versi Stored Procedures sebelumnya, ini memberikan metode efektif untuk secara otomatis mencadangkan Stored Procedures di lokasi yang ditentukan. basis data.
1. Buat tabel data StoredProceduresBackup pada database tertentu (disarankan sebagai database master SQL Server) untuk menyimpan cadangan Prosedur Tersimpan.
JIKA OBJECT_ID('StoredProceduresBackup') BUKAN NULL
DROP TABLE StoredProceduresBackup
GO
BUAT TABEL StoredProceduresBackup
(
AutoID INTEGER IDENTITY(1,1) PRIMARY KEY,
InsertDate DATETIME DEFAULT GETDATE(),
DatabaseName VARCHAR(50),
ProcedureName VARCHAR(50),
ProcedureText VARCHAR(4000)
)
GO
2. Buat Stored Procedure yang diberi nama usp_ProceduresVersion. Stored Procedure ini digunakan untuk membackup Stored Procedure yang perlu dibackup ke dalam tabel data yang telah dibuat diatas.
Diantaranya, tabel sistem sysobjects dan syscomments yang paling banyak diakses:
(1) tabel sistem sysobjects
Berisi satu baris untuk setiap objek (batasan, default, log, aturan, prosedur tersimpan, dan sebagainya) yang dibuat dalam database saja, tabel ini menyertakan baris untuk setiap objek sementara.
(2) tabel sistem komentar
Berisi entri untuk setiap tampilan, aturan, default, pemicu, batasan CHECK, batasan DEFAULT, dan prosedur tersimpan. Kolom teks berisi pernyataan definisi SQL asli, yang dibatasi hingga ukuran maksimum 4 MB .
(3) skrip sumber prosedur tersimpan.
/*
Nama: usp_ProceduresVersion
Deskripsi: Cadangkan prosedur tersimpan yang ditentukan pengguna
Penulis: Rickie
Modification Log: NO
Deskripsi Tanggal Diubah Berdasarkan
Prosedur Pembuatan 27/8/2004 Rickie
*/
BUAT PROSEDUR usp_ProceduresVersion @DatabaseName NVARCHAR(50)
SEBAGAI
SET NOCOUNT ON
--Ini akan menampung string dinamis.
DECLARE @strSQL NVARCHAR(4000)
--Atur string
--Hanya prosedur tersimpan
SET @strSQL = 'INSERT INTO master.dbo.StoredProceduresBackup(
DatabaseName,ProcedureName,ProcedureText )
SELECT ''' + @DatabaseName + ''', so.name, sc.text
FROM ' + @DatabaseName + '.dbo.sysobjects jadi
INNER JOIN ' + @DatabaseName + '.dbo.syscomments sc
ON so.id = sc.id
WHERE so.type = ''p''' + ' dan so.status>0
Pesan Oleh so.id'
--Jalankan string
EXEC dbo.sp_executesql @strSQL
GO
3. Buat Pekerjaan dan jalankan Prosedur Tersimpan di atas
untuk membuat Pekerjaan di SQL Server dan atur rencana yang sedang berjalan sehingga Prosedur Tersimpan dari database yang ditentukan dapat secara otomatis dicadangkan ke tabel data di atas.
Oke. Itu saja. Ada pertanyaan tentang itu, silakan hubungi saya di [email protected] . Semoga beruntung.