Transact-SQL 参考  
BACKUP
备份整个数据库、事务日志,或者备份一个或多个文件或文件组。有关数据库备份和恢复操作的更多信息,请参见备份和还原数据库。 语法
备份整个数据库:BACKUP DATABASE { database_name | @database_name_var } 
TO < backup_device > [ ,...n ] 
[ WITH
    [ BLOCKSIZE = { blocksize | @blocksize_variable } ]
    [ [ , ] DESCRIPTION = { 'text' | @text_variable } ]
    [ [ , ] DIFFERENTIAL ]
    [ [ , ] EXPIREDATE = { date | @date_var }
        | RETAINDAYS = { days | @days_var } ]
    [ [ , ] PASSWORD = { password | @password_variable } ]
    [ [ , ] FORMAT | NOFORMAT ]
    [ [ , ] { INIT | NOINIT } ]
    [ [ , ] MEDIADESCRIPTION = { 'text' | @text_variable } ]
    [ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
    [ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
    [ [ , ] NAME = { backup_set_name | @backup_set_name_var } ]
    [ [ , ] { NOSKIP | SKIP } ]
    [ [ , ] { NOREWIND | REWIND } ]
    [ [ , ] { NOUNLOAD | UNLOAD } ]
    [ [ , ] RESTART ]
    [ [ , ] STATS [ = percentage ] ] 
]备份特定的文件或文件组:BACKUP DATABASE { database_name | @database_name_var }
    < file_or_filegroup > [ ,...n ] 
TO < backup_device > [ ,...n ] 
[ WITH
    [ BLOCKSIZE = { blocksize | @blocksize_variable } ]
    [ [ , ] DESCRIPTION = { 'text' | @text_variable } ]
    [ [ , ] DIFFERENTIAL ]
    [ [ , ] EXPIREDATE = { date | @date_var }
        | RETAINDAYS = { days | @days_var } ]
    [ [ , ] PASSWORD = { password | @password_variable } ]
    [ [ , ] FORMAT | NOFORMAT ]
    [ [ , ] { INIT | NOINIT } ]
    [ [ , ] MEDIADESCRIPTION = { 'text' | @text_variable } ]
    [ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
    [ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
    [ [ , ] NAME = { backup_set_name | @backup_set_name_var } ]
    [ [ , ] { NOSKIP | SKIP } ]
    [ [ , ] { NOREWIND | REWIND } ]
    [ [ , ] { NOUNLOAD | UNLOAD } ]
    [ [ , ] RESTART ]
    [ [ , ] STATS [ = percentage ] ] 
]备份一个事务日志:BACKUP LOG { database_name | @database_name_var } 
{
    TO < backup_device > [ ,...n ]
    [ WITH
        [ BLOCKSIZE = { blocksize | @blocksize_variable } ]
        [ [ , ] DESCRIPTION = { 'text' | @text_variable } ]
        [ [ ,] EXPIREDATE = { date | @date_var }
            | RETAINDAYS = { days | @days_var } ]
        [ [ , ] PASSWORD = { password | @password_variable } ]
        [ [ , ] FORMAT | NOFORMAT ]
        [ [ , ] { INIT | NOINIT } ]
        [ [ , ] MEDIADESCRIPTION = { 'text' | @text_variable } ]
        [ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
        [ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
        [ [ , ] NAME = { backup_set_name | @backup_set_name_var } ]
        [ [ , ] NO_TRUNCATE ]
        [ [ , ] { NORECOVERY | STANDBY = undo_file_name } ]
        [ [ , ] { NOREWIND | REWIND } ]
        [ [ , ] { NOSKIP | SKIP } ]
        [ [ , ] { NOUNLOAD | UNLOAD } ]
        [ [ , ] RESTART ]
        [ [ , ] STATS [ = percentage ] ] 
    ] 
} < backup_device > ::=
    { 
        { logical_backup_device_name | @logical_backup_device_name_var }
        | 
        { DISK | TAPE } =
            { 'physical_backup_device_name' | @physical_backup_device_name_var }
    } < file_or_filegroup > ::=
    { 
        FILE = { logical_file_name | @logical_file_name_var }
        | 
        FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var } 
    } 截断事务日志:BACKUP LOG { database_name | @database_name_var }
{
    [ WITH
        { NO_LOG | TRUNCATE_ONLY } ] 
}参数
DATABASE指定一个完整的数据库备份。假如指定了一个文件和文件组的列表,那么仅有这些被指定的文件和文件组被备份。说明  在进行完整数据库备份或差异数据库备份时,Microsoft&reg; SQL Server&#8482; 备份足够的事务日志,以生成一个将在还原数据库时使用的一致的数据库。在 master 数据库上只能采用完整数据库备份。
{ database_name | @database_name_var }指定了一个数据库,从该数据库中对事务日志、部分数据库或完整的数据库进行备份。如果作为变量 (@database_name_var) 提供,则可将该名称指定为字符串常量 (@database_name_var = database name) 或字符串数据类型(ntext 或 text 数据类型除外)的变量。< backup_device >指定备份操作时要使用的逻辑或物理备份设备。可以是下列一种或多种形式: { logical_backup_device_name } | { @logical_backup_device_name_var } 
是由 sp_addumpdevice 创建的备份设备的逻辑名称,数据库将备份到该设备中,其名称必须遵守标识符规则。如果将其作为变量 (@logical_backup_device_name_var) 提供,则可将该备份设备名称指定为字符串常量 (@logical_backup_device_name_var = logical backup device name) 或字符串数据类型(ntext 或 text 数据类型除外)的变量。{ DISK | TAPE } = 
'physical_backup_device_name' | @physical_backup_device_name_var 
允许在指定的磁盘或磁带设备上创建备份。在执行 BACKUP 语句之前不必存在指定的物理设备。如果存在物理设备且 BACKUP 语句中没有指定 INIT 选项,则备份将追加到该设备。 
当指定 TO DISK 或 TO TAPE 时,请输入完整路径和文件名。例如,DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\Mybackup.dat' 或 TAPE = '\\.\TAPE0'。说明  对于备份到磁盘的情况,如果输入一个相对路径名,备份文件将存储到默认的备份目录中。该目录在安装时被设置并且存储在 KEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer 目录下的 BackupDirectory 注册表键值中。如果使用的是具有统一命名规则 (UNC) 名称的网络服务器或已重新定向的驱动器号,则请指定磁盘的设备类型。当指定多个文件时,可以混合逻辑文件名(或变量)和物理文件名(或变量)。但是,所有的设备都必须为同一类型(磁盘、磁带或管道)。Windows 98 不支持备份到磁盘。n是表示可以指定多个备份设备的占位符。备份设备数目的上限为 64。BLOCKSIZE = { blocksize | @blocksize_variable }用字节数来指定物理块的大小。在 Windows NT 系统上,默认设置是设备的默认块大小。一般情况下,当 SQL Server 选择适合于设备的块大小时不需要此参数。在基于 Windows 2000 的计算机上,默认设置是 65,536(64 KB,是 SQL Server 支持的最大大小)。 对于磁盘,BACKUP 自动决定磁盘设备合适的块大小。说明  如果要将结果备份集存储到 CD-ROM 中然后从 CD-ROM 中恢复,请将 BLOCKSIZE 设为 2048。
磁带的默认 BLOCKSIZE 为 65,536 (64 KB)。显式声明块大小将替代 SQL Server 选择的块大小。DESCRIPTION = { 'text' | @text_variable }指定描述备份集的自由格式文本。该字符串最长可以有 255 个字符。DIFFERENTIAL指定数据库备份或文件备份应该与上一次完整备份后改变的数据库或文件部分保持一致。差异备份一般会比完整备份占用更少的空间。对于上一次完整备份时备份的全部单个日志,使用该选项可以不必再进行备份。有关更多信息,请参见差异数据库备份和文件差异备份。 说明  在进行完整数据库备份或差异备份时,SQL Server 备份足够的事务日志,从而在恢复数据库时生成一个一致的数据库。
EXPIREDATE = { date | @date_var }指定备份集到期和允许被重写的日期。如果将该日期作为变量 (@date_var) 提供,则可以将该日期指定为字符串常量 (@date_var = date)、字符串数据类型变量(ntext 或 text 数据类型除外)、smalldatetime 或者 datetime 变量,并且该日期必须符合已配置的系统 datetime 格式。RETAINDAYS = { days | @days_var }指定必须经过多少天才可以重写该备份媒体集。假如用变量 (@days_var) 指定,该变量必须为整型。重要  假如 EXPIREDATE 或 RETAINDAYS 没有指定,有效期将取决于 sp_configure 的 media retention 配置设置。这些选项仅仅阻止 SQL Server 重写文件。用其它方法可擦除磁带,而通过操作系统可以删除磁盘文件。有关过期验证的更多信息,请参见本主题的 SKIP 和 FORMAT。
PASSWORD = { password | @password_variable }为备份集设置密码。 PASSWORD 是一个字符串。如果为备份集定义了密码,必须提供这个密码才能对该备份集执行任何还原操作。 重要  备份集密码防止未经授权即通过 SQL Server 2000 工具访问备份集的内容,但是不能防止重写备份集。
有关使用密码的更多信息,请参见"权限"部分。FORMAT指定应将媒体头写入用于此备份操作的所有卷。任何现有的媒体头都被重写。FORMAT 选项使整个媒体内容无效,并且忽略任何现有的内容。重要  使用 FORMAT 要谨慎。格式化一个备份设备或媒体将使整个媒体集不可用。例如,如果初始化现有条带备份集中的单个磁带,则整个备份集都将变得不可用。
通过指定 FORMAT,备份操作也就暗示了 SKIP 和 INIT;这些都不必显式说明。NOFORMAT指定媒体头不应写入所有用于该备份操作的卷中,并且不要重写该备份设备除非指定了 INIT。INIT指定应重写所有备份集,但是保留媒体头。如果指定了 INIT,将重写那个设备上的所有现有的备份集数据。当遇到以下几种情况之一时不重写备份媒体: 媒体上的备份设置没有全部过期。有关更多信息,请参见 EXPIREDATE 和 RETAINDAYS 选项。
如果 BACKUP 语句给出了备份集名,该备份集名与备份媒体上的名称不匹配。有关更多信息,请参见 NAME 子句。 
使用 SKIP 选项替代这些检查。有关使用 SKIP、NOSKIP、INIT 和 NOINIT 时的相互作用关系的更多信息,请参见注释部分。说明  如果备份媒体有密码保护,SQL Server 将不写入媒体,除非提供媒体密码。SKIP 选项不替代此检查。只有通过格式化才能重写受密码保护的媒体。有关更多信息,请参见 FORMAT 选项。
NOINIT表示备份集将追加到指定的磁盘或磁带设备上,以保留现有的备份集。NOINIT 是默认设置。 RESTORE 命令的 FILE 选项用于在还原时选择适当的备份集。有关更多信息,请参见 RESTORE。如果为媒体集定义了媒体密码,则必须提供密码。MEDIADESCRIPTION = { text | @text_variable }指明媒体集的自由格式文本描述,最多为 255 个字符。MEDIADESCRIPTION = { text | @text_variable }为整个备份媒体集指明媒体名,最多为 128 个字符。假如指定了 MEDIANAME,则它必须与以前指定的媒体名相匹配,该媒体名已存在于备份卷中。假如没有指定 MEDIANAME,或指定了 SKIP 选项,将不会对媒体名进行验证检查。MEDIAPASSWORD = { mediapassword | @mediapassword_variable }为媒体集设置密码。MEDIAPASSWORD 是一个字符串。 如果为媒体集定义了密码,则在该媒体集上创建备份集时必须提供此密码。另外,从该媒体集执行任何还原操作时也必须提供媒体密码。只有通过格式化才能重写受密码保护的媒体。有关更多信息,请参见 FORMAT 选项。有关使用密码的更多信息,请参见"权限"部分。NAME = { backup_set_name | @backup_set_var }指定备份集的名称。名称最长可达 128 个字符。假如没有指定 NAME,它将为空。NORECOVERY只与 BACKUP LOG 一起使用。备份日志尾部并使数据库处于正在还原的状态。当将故障转移到辅助数据库或在 RESTORE 操作前保存日志尾部时,NORECOVERY 很有用。STANDBY = undo_file_name只与 BACKUP LOG 一起使用。备份日志尾部并使数据库处于只读或备用模式。撤消文件名指定了容纳回滚更改的存储,如果随后应用 RESTORE LOG 操作,则必须撤消这些回滚更改。 如果指定的撤消文件名不存在,SQL Server 将创建该文件。如果该文件已存在,则 SQL Server 将重写它。有关更多信息,请参见使用备用服务器。 NOREWIND指定 SQL Server 在备份操作完成后使磁带保持打开。NOREWIND 意即 NOUNLOAD。SQL Server 将保留磁带驱动器的所有权,直到 BACKUP或 RESTORE 命令使用 REWIND 为止。 如果无意中使磁带处于打开状态,则释放磁带的最快方法是使用下面的 RESTORE 命令:RESTORE LABELONLY FROM TAPE = <name> WITH REWIND通过查询 master 数据库中的 sysopentapes 表可以查找正在打开的磁带列表。REWIND指定 SQL Server 将释放磁带和倒带。如果 NOREWIND 和 REWIND 均未指定,则默认设置为 REWIND。NOSKIP指示 BACKUP 语句在可以重写媒体上的所有备份集之前先检查它们的过期日期。SKIP禁用备份集过期和名称检查,这些检查一般由 BACKUP 语句执行以防重写备份集。有关更多信息,请参见注释部分。NOUNLOAD指定不在备份后从磁带驱动器中自动卸载磁带。设置始终为 NOUNLOAD,直到指定 UNLOAD 为止。该选项只用于磁带设备。UNLOAD指定在备份完成后自动倒带并卸载磁带。启动新用户会话时其默认设置为 UNLOAD。该设置一直保持到用户指定了 NOUNLOAD 时为止。该选项只用于磁带设备。RESTART指定 SQL Server 重新启动一个被中断的备份操作。因为 RESTART 选项在备份操作被中断处重新启动该操作,所以它节省了时间。若要重新启动一个特定的备份操作,请重复整个 BACKUP 语句并且加入 RESTART 选项。不一定非要使用 RESTART 选项,但是它可以节省时间。重要  该选项只用于导向磁带媒体的备份和跨越了多个磁带卷的备份。在备份的第一卷上永远不会有重新启动操作。
STATS [= percentage]每当另一个 percentage 结束时显示一条消息,它被用于测量进度。如果省略 percentage,SQL Server 将每完成 10 个百分点显示一条消息。<file_or_filegroup>指定包含在数据库备份中的文件或文件组的逻辑名。可以指定多个文件或文件组。FILE = { logical_file_name | @logical_file_name_var } 给一个或多个包含在数据库备份中的文件命名。 FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }给一个或多个包含在数据库备份中的文件组命名。 说明  当数据库的大小和性能要求使得进行完整数据库备份不切实际时,备份一个文件。若要单独备份事务日志,请使用 BACKUP LOG。
重要  必须通过使用 BACKUP LOG 提供事务日志的单独备份,才能使用文件和文件组备份来恢复数据库。有关文件备份的更多信息,请参见备份使用文件备份。
如果恢复模型为 SIMPLE,则不允许文件和文件组备份。 n是一个占位符,表示可以指定多个文件和文件组。对文件或文件组的最大个数没有限制。LOG指定只备份事务日志。该日志是从上一次成功执行了的 LOG 备份到当前日志的末尾。一旦备份日志,可能会截断复制或活动事务不再需要的空间。说明  假如备份日志看来并没有截断大部分的日志,则有可能在日志中存在一个旧的开放事务。可以使用 DBCC SQLPERF (LOGSPACE) 观察日志空间。有关更多信息,请参见事务日志备份。
NO_LOG | TRUNCATE_ONLY无须备份复制日志即删除不活动的日志部分,并且截断日志。该选项会释放空间。因为并不保存日志备份,所以没有必要指定备份设备。NO_LOG 和 TRUNCATE_ONLY 是同义的。使用 NO_LOG 或 TRUNCATE_ONLY 备份日志后,记录在日志中的更改不可恢复。为了恢复,请立即执行 BACKUP DATABASE。NO_TRUNCATE允许在数据库损坏时备份日志。注释
可以将数据库或日志备份追加到任何磁盘或磁带设备上,从而使得数据库和它的事务日志能存储在一个物理位置中。 当数据库正在使用时,SQL Server 使用一个联机备份过程来对数据库进行备份。下面的列表包括在数据库或事务日志备份时无法进行的操作: 在备份操作时允许进行文件管理操作,如带有 ADD FILE 或 REMOVE FILE 选项的 ALTER DATABASE 语句,以及 INSERT、UPDATE 或 DELETE 语句。
收缩数据库或文件。这包括自动收缩操作。 
假如在这些操作正在进行时启动备份,备份将终止。假如正在进行备份时,试图进行这些操作,则操作会失败。只要操作系统支持数据库的排序规则,就可以在不同的平台之间执行备份操作,即使这些平台使用不同的处理器类型。有关更多信息,请参见 SQL Server 排序规则基础知识。备份文件格式
因为 SQL Server 2000 的备份格式遵从 Microsoft 磁带格式 (MTF),该格式与 Windows NT 磁带备份所使用的格式相同,所以 SQL Server 备份可与 Windows NT 备份共存于磁带媒体上。若要确保相互操作性,磁带应由 NTBackup 格式化。备份类型
SQL Server 支持的备份类型包括: 完整数据库备份,它备份包括事务日志的整个数据库。
在完整数据库备份之间执行差异数据库备份。
事务日志备份。 
日志备份序列提供了连续的事务信息链,可支持从数据库、差异或文件备份中快速恢复。文件和文件组备份。 
当时间限制使得完整数据库备份不切实际时,请使用 BACKUP 备份数据库文件和文件组,而不是备份完整数据库。若要备份一个文件而不是整个数据库时,请合理安排步骤以确保数据库中所有的文件按规则备份。同时必须进行单独的事务日志备份。在恢复一个文件备份后,使用事务日志将文件内容前滚,使其与数据库其余部分一致。 在条带集中使用的备份设备必须一直在条带集中使用(除非在某处用 FORMAT 重新初始化),而且设备数目不变。在备份设备已定义为条带集的组成部分后,就不能用于单个设备备份,除非指定了 FORMAT。同样,一个含有非条带集备份的备份设备不能用于条带集,除非指定了 FORMAT。使用 FORMAT 来分开条带备份集。如果写入媒体头时未指定 MEDIANAME 或 MEDIADESCRIPTION,则与空项对应的媒体头字段将为空。如果恢复模型为 SIMPLE,则无法使用 BACKUP LOG。应该使用 BACKUP DATABASE 来替代。SKIP、NOSKIP、INIT 和 NOINIT 间的相互作用
下表说明 { INIT | NOINIT }和{ NOSKIP | SKIP } 子句间是如何相互作用的。说明  在所有这些交互操作中,如果磁带媒体为空或磁带备份文件不存在,则写入媒体头并继续。如果媒体头不为空或不含有效的媒体头,则指出这是无效的 MTF 媒体并取消备份。
  INIT NOINIT 
SKIP 如果卷中包含有效的1 媒体头,则验证媒体密码并重写媒体上的全部备份集,仅保留媒体头。 
如果卷不含有效的媒体头,则使用给定的 MEDIANAME、MEDIAPASSWORD 和 MEDIADESCRIPTION(若有)生成媒体头。
 如果卷中包含有效的媒体头,则验证媒体密码并添加备份集,并保留所有现有备份集。 
如果卷不含有效的媒体头,则会出错。
 
NOSKIP 如果该卷包含一个有效的媒体头,将执行以下检查: 
验证媒体密码。2
如果指定了 MEDIANAME,将验证所给的媒体名是否匹配媒体头的媒体名。
验证媒体上没有未过期的备份集。
如果有,将终止备份。 
如果这些检查都通过了,将重写该媒体上一切备份集,只保留媒体头。如果卷不含有效的媒体头,则使用给定的 MEDIANAME、MEDIAPASSWORD 和 MEDIADESCRIPTION(若有)生成媒体头。
 如果该卷包含一个有效的媒体头,将验证媒体密码*并且验证媒体是否名匹配所给的 MEDIANAME(假如有的话)。如果匹配,追加备份集,同时保留所有现有的备份集。 
如果卷不含有效的媒体头,则会出错。
 
1. 有效性包括 MTF 版本号和其它标题信息。如果不支持指定的版本或指定的版本不是期望值,将会发生错误。
2. 用户必须属于适当的固定数据库或服务器角色,并提供执行备份操作所需的正确媒体密码。说明  为保持向后兼容性,在 BACKUP 语句的语法中可使用 DUMP 关键字替代 BACKUP 关键字。另外,可使用 TRANSACTION 关键字替代 LOG 关键字。
备份历史表
SQL Server 使用以下的备份历史表来跟踪备份活动: backupfile
backupmediafamily
backupmediaset
backupset 
执行 RESTORE 时,将修改备份历史记录表。兼容性注意事项注意  无法在早期 SQL Server 版本中还原使用 Microsoft&reg; SQL Server&#8482; 2000 创建的备份。
权限
BACKUP DATABASE 和 BACKUP LOG 权限默认情况下授予 sysadmin 固定服务器角色和 db_owner 及 db_backupoperator 固定数据库角色的成员。 此外,用户可以为媒体集、备份集或两者指定密码。如果为媒体集指定了密码,则用户若只是适当的固定服务器和数据库角色成员还不足以执行备份。用户还必须提供媒体密码才能执行这些操作。同样,除非在还原命令中指定正确的媒体集密码和备份集密码,否则不能执行还原操作。在 BACKUP 语句中,定义备份集密码和媒体集密码为可选功能。使用密码可防止利用 SQL Server 2000 工具未经授权地执行还原操作和在媒体中添加备份集,但是,密码不能防止通过 FORMAT 选项重写媒体。因此,尽管使用密码对防止利用 SQL Server 工具未经授权地访问媒体内容有帮助,但密码不能防止媒体内容被破坏。密码不能完全防止未经授权地访问媒体内容,原因在于备份集中的数据没有加密,理论上可以被专为此目的创建的程序所检查。对于安全性至关重要的场合,防止未经授权的个人访问媒体非常重要。为不是用相关密码创建的对象指定密码是错误的做法。BACKUP 使用由 PASSWORD 选项提供的备份集密码创建备份集。另外,BACKUP 正常情况下在写入媒体之前验证由 MEDIAPASSWORD 选项提供的媒体密码。BACKUP 不验证媒体密码的唯一情况是当格式化媒体时,这将重写媒体头。BACKUP 只在下列情况下格式化媒体: 如果指定了 FORMAT 选项。
如果媒体头无效且指定了 INIT。
如果正在写入延续卷。 
如果 BACKUP 写入媒体头,BACKUP 将给 MEDIAPASSWORD 选项中指定的值指派媒体集密码。有关密码对 SKIP、NOSKIP、INIT 和 NOINIT 选项的影响的更多信息,请参见注释部分。备份设备物理文件的所有权和权限问题可能会妨碍备份操作。SQL Server 必须能够读取并写入设备;运行 SQL Server 服务的帐户必须有写入权限。但是,为设备在系统表中添加项目的 sp_addumpdevice 不检查文件访问权。备份设备物理文件的这些问题可能直到为备份或还原而访问物理资源时才会出现。示例
A. 备份整个 MyNwind 数据库
说明  MyNwind 数据库仅用于演示。
下例创建用于存放 MyNwind 数据库完整备份的逻辑备份设备。-- Create a logical backup device for the full MyNwind backup.
USE master
EXEC sp_addumpdevice 'disk', 'MyNwind_1', 
   DISK ='c:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\MyNwind_1.dat'-- Back up the full MyNwind database.
BACKUP DATABASE MyNwind TO MyNwind_1B. 备份数据库和日志
本例创建了一个数据库和日志的完整备份。将数据库备份到称为 MyNwind_2 的逻辑备份设备上,然后将日志备份到称为 MyNwindLog1 的逻辑备份设备上。 说明  创建逻辑备份设备需要一次完成。
-- Create the backup device for the full MyNwind backup.
USE master
EXEC sp_addumpdevice 'disk', 'MyNwind_2',
   'c:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\MyNwind_2.dat'--Create the log backup device.
USE master
EXEC sp_addumpdevice 'disk', 'MyNwindLog1',
   'c:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\MyNwindLog1.dat'-- Back up the full MyNwind database.
BACKUP DATABASE MyNwind TO MyNwind_2-- Update activity has occurred since the full database backup.-- Back up the log of the MyNwind database.
BACKUP LOG MyNwind 
   TO MyNwindLog1
请参见备份格式 DBCC SQLPERFRESTORERESTORE FILELISTONLYRESTORE HEADERONLYRESTORE LABELONLYRESTORE VERIFYONLYsp_addumpdevicesp_configuresp_dboptionsp_helpfilesp_helpfilegroup使用标识符 使用媒体集及媒体家族 &copy;1988-2000 Microsoft Corporation。保留所有权利。

解决方案 »

  1.   

    //备份
    with ADOCommand do
    begin
      CommandText:='backup database DBName to disk=''' + FileName + ''' with init'; 
      Execute;
    end;//恢复
    with ADOCommand do
    begin
      CommandText:='Restore database DBName from disk=''' + FileName + ''''; 
      Execute;
    end;
      

  2.   

    备份:
    Dim oBackup As New SQLDMO.Backup
    oBackup.Action = SQLDMOBackup_Database
    oBackup.Database = "Northwind"
    oBackup.Devices = "[NorthDev1],[NorthDev2]"
    oBackup.BackupSetName = "Northwind_Full"
    oBackup.BackupSetDescription = "Full backup of Northwind sample."oBackup.SQLBackup oSQLServer
      

  3.   

    adoConnection.execute('backup ......');
      

  4.   

    taxi(游少爷):你好!备份的路径怎么设!
      

  5.   

    //备份
    if SaveDialog1.Execute then
      with ADOCommand do
      begin
        CommandText:='backup database DBName to disk=''' + SaveDialog1.FileName + ''' with init'; 
        Execute;
      end;//恢复
    if OpenDialog1.Execute then
      with ADOCommand do
      begin
        CommandText:='Restore database DBName from disk=''' + OpenDialog1.FileName + ''''; 
        Execute;
      end;
      

  6.   

    to:   taxi(游少爷):
    备份正常;
    恢复时出错:'[microsoft][odbc sql server driver driver][sql server]
    database in use .the system administrator must have exclusive use
    of the database to run the restore operation'
    我的数据库没有在用,是不是系统在用数据库呢!如何解决!请指教!!!!!!!!!
      

  7.   

    把AdoCommand或AdoQuery连到其它数据库试试,我就可以的(用AdoCommand);
      

  8.   

    恢复的时候,把ado控件连到其它的数据库不行吗?