| 作者:未知 来源:网上收集 发布时间:2007-3-24 2:12:56 |
|
为了避免意外丢失/损坏辛苦创建的Stored Procedures,或者想恢复到以前版本的Stored Procedures,这样提供了一个有效方法,可以自动将指定数据库中的Stored Procedures进行备份。
1. 在特定的数据库(建议为SQL Server的master数据库)上创建数据表StoredProceduresBackup,用来保存备份的Stored Procedures。 IF OBJECT_ID('StoredProceduresBackup') IS NOT NULL
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. 创建Stored Procedure名为usp_ProceduresVersion,该Stored Procedure用来将需要备份Stored Procedures的备份到上述创建的数据表中。 其中主要访问sysobjects和syscomments系统表: (1) sysobjects system table
(2) syscomments system table
(3) source script of stored procedure.
/* Name: usp_ProceduresVersion Description: Back up user defined stored-procedures Author: Rickie Modification Log: NO
Description Date Changed By Created procedure 8/27/2004 Rickie */
CREATE PROCEDURE usp_ProceduresVersion @DatabaseName NVARCHAR(50) AS SET NOCOUNT ON
--This will hold the dynamic string. DECLARE @strSQL NVARCHAR(4000)
--Set the string --Only stored procedures 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''' + ' and so.status>0 Order By so.id '
--Execute the string EXEC dbo.sp_executesql @strSQL GO
3. 创建Job执行上述Stored Procedure 在SQL Server上创建Job,并设定运行计划,这样指定数据库的Stored Procedures就可以自动备份到上述数据表中。
OK. That’s all. Any questions about it, please contact me at rickieleemail@yahoo.com. Have a good lUCk. |
| [返回上一页] [打 印] |
|
上一篇文章:五种提高SQL性能的方法 | 下一篇文章:SQL Script tips for MS SQL Server |