--SQL server 2000 中xp_cmdshell 可以直接使用.所以使用一下存储过程即可. CreatePROC P_JRJ_SYSTEM_BACKServerNameDB @BkPathvarchar(20)='E:' AS Begin DECLARE@sqlnvarchar(4000) -- 设置备份目录 SET@BkPath=N''+@BkPath+'' +CAST(SERVERPROPERTY(N'ServerName') as sysname) +N'' SET@sql=N'md '+QUOTENAME(@BkPath, N'"') EXEC master.dbo.xp_cmdshell @sql SET@sql=N' IF N''?'' = N''tempdb'' RETURN RAISERROR(N''Backup Database: ?'',10,1) WITH NOWAIT BACKUP DATABASE [?] TO DISK=N' +QUOTENAME(@BkPath+N'?.bak',N'''') +N' WITH FORMAT, STATS=10' EXEC sp_msforeachdb @sql End --调用 JRJ_SYSTEM_BACKServerNameDB --SQL Server 2005 中使用需要重新启动xp_cmdshell 命令. 默认情况下,xp_cmdshell 选项在新安装的软件上处于禁用状态,但是可以通过使用外围应用配置器工具或运行 sp_configure 系统存储过程来启用它, -- To allow advanced options to be changed. EXEC sp_configure 'show advanced options', 1 GO -- To update the currently configured value for advanced options. RECONFIGURE GO -- To enable the feature. EXEC sp_configure 'xp_cmdshell', 1 GO -- To update the currently configured value for this feature. RECONFIGURE GO CREATEPROC P_JRJ_SYSTEM_BACKServerNameDB @BkPathvarchar(20)='E:' AS Begin DECLARE@sqlnvarchar(4000) -- 设置备份目录 SET@BkPath=N''+@BkPath+'' +CAST(SERVERPROPERTY(N'ServerName') as sysname) +N'' SET@sql=N'md '+QUOTENAME(@BkPath, N'"') EXEC master.dbo.xp_cmdshell @sql SET@sql=N' IF N''?'' = N''tempdb'' RETURN RAISERROR(N''Backup Database: ?'',10,1) WITH NOWAIT BACKUP DATABASE [?] TO DISK=N' +QUOTENAME(@BkPath+N'?.bak',N'''') +N' WITH FORMAT, STATS=10' EXEC sp_msforeachdb @sql End --调用 P_JRJ_SYSTEM_BACKServerNameDB