Para evitar perder/dañar accidentalmente los Procedimientos almacenados que ha trabajado tan duro para crear, o si desea restaurar a una versión anterior de los Procedimientos almacenados, esto proporciona un método efectivo para realizar una copia de seguridad automática de los Procedimientos almacenados en el lugar especificado. base de datos.
1. Cree la tabla de datos StoredProceduresBackup en una base de datos específica (se recomienda que sea la base de datos maestra de SQL Server) para guardar los procedimientos almacenados de respaldo.
SI OBJECT_ID('StoredProceduresBackup') NO ES NULO
DROP TABLE Procedimientos almacenados Copia de seguridad
GO
CREAR TABLA StoredProceduresBackup
(
AutoID INTEGER IDENTITY(1,1) CLAVE PRIMARIA,
InsertDate DATETIME DEFAULT GETDATE(),
Nombre de la base de datos VARCHAR(50),
Nombre del procedimiento VARCHAR(50),
Texto del procedimiento VARCHAR(4000)
)
GO
2. Cree un procedimiento almacenado llamado usp_ProceduresVersion. Este procedimiento almacenado se utiliza para realizar una copia de seguridad de los procedimientos almacenados que deben respaldarse en la tabla de datos creada anteriormente.
Entre ellos, se accede principalmente a las tablas del sistema sysobjects y syscomments:
(1) tabla del sistema sysobjects
Contiene una fila para cada objeto (restricción, valor predeterminado, registro, regla, procedimiento almacenado, etc.) creado dentro de una base de datos únicamente en tempdb, esta tabla incluye una fila para cada objeto temporal.
(2) tabla del sistema sycomments
Contiene entradas para cada vista, regla, valor predeterminado, activador, restricción CHECK, restricción DEFAULT y procedimiento almacenado. La columna de texto contiene las declaraciones de definición SQL originales, que están limitadas a un tamaño máximo de 4 MB. .
(3) script fuente del procedimiento almacenado.
/*
Nombre: usp_ProceduresVersion
Descripción: Copia de seguridad de los procedimientos almacenados definidos por el usuario
Autor: Rickie
Registro de modificaciones: NO
Descripción Fecha modificada por
Procedimiento de creación 27/08/2004 Rickie
*/
CREAR PROCEDIMIENTO usp_ProceduresVersion @DatabaseName NVARCHAR(50)
COMO
ESTABLECER NOCOUNT ON
--Esto contendrá la cadena dinámica
DECLARE @strSQL NVARCHAR(4000)
--Establezca la cadena
--Solo procedimientos almacenados
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''' + ' y so.status>0
Ordenar por so.id '
--Ejecutar la cadena
EXEC dbo.sp_executesql @strSQL
GO
3. Cree el trabajo y ejecute el procedimiento almacenado anterior
para crear el trabajo en SQL Server y configure el plan de ejecución para que los procedimientos almacenados de la base de datos especificada se puedan respaldar automáticamente en la tabla de datos anterior.
Bien, eso es todo. Si tiene alguna pregunta al respecto, comuníquese conmigo a [email protected] . Que tenga buena suerte.