Um zu vermeiden, dass die gespeicherten Prozeduren, an deren Erstellung Sie so hart gearbeitet haben, versehentlich verloren gehen/beschädigt werden, oder wenn Sie eine frühere Version der gespeicherten Prozeduren wiederherstellen möchten, bietet dies eine effektive Methode zum automatischen Sichern der gespeicherten Prozeduren im angegebenen Verzeichnis Datenbank.
1. Erstellen Sie die Datentabelle StoredProceduresBackup in einer bestimmten Datenbank (empfohlen die Masterdatenbank von SQL Server), um die gesicherten gespeicherten Prozeduren zu speichern.
WENN OBJECT_ID('StoredProceduresBackup') NICHT NULL IST
DROP TABLE StoredProceduresBackup
GO
CREATE TABLE StoredProceduresBackup
(
AutoID INTEGER IDENTITY(1,1) PRIMARY KEY,
InsertDate DATETIME DEFAULT GETDATE(),
DatabaseName VARCHAR(50),
ProcedureName VARCHAR(50),
ProcedureText VARCHAR(4000)
)
GO
2. Erstellen Sie eine gespeicherte Prozedur mit dem Namen usp_ProceduresVersion. Diese gespeicherte Prozedur wird zum Sichern der gespeicherten Prozeduren verwendet, die in der oben erstellten Datentabelle gesichert werden müssen.
Unter diesen wird hauptsächlich auf die Systemtabellen sysobjects und syscomments zugegriffen:
(1) Systemtabelle sysobjects
Enthält eine Zeile für jedes Objekt (Einschränkung, Standard, Protokoll, Regel, gespeicherte Prozedur usw.), das in einer Datenbank erstellt wurde. Nur in tempdb enthält diese Tabelle eine Zeile für jedes temporäre Objekt.
(2) syscomments-Systemtabelle
Enthält Einträge für jede Ansicht, Regel, Standard, Trigger, CHECK-Einschränkung, DEFAULT-Einschränkung und gespeicherte Prozedur. Die Textspalte enthält die ursprünglichen SQL-Definitionsanweisungen, die auf eine maximale Größe von 4 MB begrenzt sind .
(3) Quellskript der gespeicherten Prozedur.
/*
Name: usp_ProceduresVersion
Beschreibung: Benutzerdefinierte gespeicherte Prozeduren sichern
Autor: Rickie
Änderungsprotokoll: NEIN
Beschreibung Datum geändert von
Erstelltes Verfahren 27.08.2004 Rickie
*/
CREATE PROCEDURE usp_ProceduresVersion @DatabaseName NVARCHAR(50)
AS
SET NOCOUNT ON
--Hier wird die dynamische Zeichenfolge gespeichert.
DECLARE @strSQL NVARCHAR(4000)
--Legen Sie die Zeichenfolge
fest --Nur gespeicherte Prozeduren
SET @strSQL = 'INSERT INTO master.dbo.StoredProceduresBackup(
DatabaseName,ProcedureName,ProcedureText )
SELECT ''' + @DatabaseName + ''', so.name, sc.text
FROM ' + @DatabaseName + '.dbo.sysobjects so
INNER JOIN ' + @DatabaseName + '.dbo.syscomments sc
ON so.id = sc.id
WHERE so.type = ''p''' + ' und so.status>0
Bestellen nach so.id '
--Führen Sie die Zeichenfolge
EXEC dbo.sp_executesql @strSQL
GO
aus
3. Erstellen Sie den Job und führen Sie die oben genannte gespeicherte Prozedur aus,
um den Job auf SQL Server zu erstellen und den Ausführungsplan so festzulegen, dass die gespeicherten Prozeduren der angegebenen Datenbank automatisch in der oben genannten Datentabelle gesichert werden können.
Okay. Das ist alles. Bei Fragen dazu kontaktieren Sie mich bitte unter [email protected] . Viel Glück.