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