之所以这么做
,是因为在控制面板卸载时不干净
,sql的实例都还在
。用这个方法最好
。其中,setup.exe是
SQLEXPR_ADV.EXE解压缩之后的安装程序。 卸载:执行命令
c:\sqlserver2005\Setup.exe /qb REMOVE=ALL INSTANCENAME=<InstanceName>
自动备份思路: 1:生成一个自动备份的sql脚本,一个名叫 sp_BackupDatabase 的存贮过程。
1USE [master]
2GO
3/****** Object: StoredProcedure [dbo].[sp_BackupDatabase] Script Date: 02/07/2007 11:40:47 ******/
4SET ANSI_NULLS ON
5GO
6SET QUOTED_IDENTIFIER ON
7GO
8
9
10-- =============================================
11-- Author: Edgewood Solutions
12-- Create date: 2007-02-07
13-- Description: Backup Database
14-- Parameter1: databaseName
15-- Parameter2: backupType F=full, D=differential, L=log
16-- =============================================
17CREATE PROCEDURE [dbo].[sp_BackupDatabase]
18 @databaseName sysname, @backupType CHAR(1)
19AS
20BEGIN
21 SET NOCOUNT ON;
22
23 DECLARE @sqlCommand NVARCHAR(1000)
24 DECLARE @dateTime NVARCHAR(20)
25
26 SELECT @dateTime = REPLACE(CONVERT(VARCHAR, GETDATE(),111),'/','') +
27 REPLACE(CONVERT(VARCHAR, GETDATE(),108),':','')
28
29 IF @backupType = 'F'
30 SET @sqlCommand = 'BACKUP DATABASE ' + @databaseName +
31 ' TO DISK = ''C:\Backup\' + @databaseName + '_Full_' + @dateTime + '.BAK'''
32
33 IF @backupType = 'D'
34 SET @sqlCommand = 'BACKUP DATABASE ' + @databaseName +
35 ' TO DISK = ''C:\Backup\' + @databaseName + '_Diff_' + @dateTime + '.BAK'' WITH DIFFERENTIAL'
36
37 IF @backupType = 'L'
38 SET @sqlCommand = 'BACKUP LOG ' + @databaseName +
39 ' TO DISK = ''C:\Backup\' + @databaseName + '_Log_' + @dateTime + '.TRN'''
40
41 EXECUTE sp_executesql @sqlCommand
42END
注意,要编译一下。
2:调用这个存储过程的一个sql脚本2。这个脚本可以被外部的程序调用,使用sqlcmd.exe来解释执行。
1sp_BackupDatabase 'master', 'F'
2GO
3sp_BackupDatabase 'model', 'F'
4GO
5sp_BackupDatabase 'msdb', 'F'
6GO
7QUIT
3:设置定时任务,每天执行上述脚本2.
sqlcmd -S serverName -E -i C:\Backup\脚本2.sql
上述语句是计划任务的“Run”里面的参数。