Transact-SQL   语法规则 
Transact-SQL   引用中的语法关系图使用下列规则。 
大写    : Transact-SQL   关键字。   
斜体    : Transact-SQL   语法中用户提供的参数。   
|          : 分隔括号或大括号内的语法项目。只能选择一个项目。

[   ]      : 可选语法项目。不必键入方括号。

{  }       : 必选语法项。不要键入大括号。

[,...n ]  : 表示前面的项可重复   n   次。每一项由逗号分隔。

[ ...n ]   表示前面的项可重复   n   次。每一项由空格分隔。

加粗     数据库名、表名、列名、索引名、存储过程、实用工具、数据类型名以及必须按所显示的原样键入的文本。

BACKUP DATABASE [demoData] TO DISK=N'D:\Backup\demoData.bak' WITH NOFORMAT, NOINIT,  NAME = N'demoData-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO

< backup_device > ::=  --备份设备定义
    { 
        { logical_backup_device_name | @logical_backup_device_name_var }
        | 
        { DISK|TAPE } ={ 'physical_backup_device_name' | @physical_backup_device_name_var } -- 磁盘或者磁带上备份  DISK 或者 TAPE需要指定完整路径名

    }  < file_or_filegroup > ::=  --备份文件或文件组定义
    { 
        FILE = { logical_file_name | @logical_file_name_var } --指定包含在数据库备份中的文件或文件组的逻辑名。可以指定多个文件或文件组。
        | 
        FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }  --给一个或多个包含在数据库备份中的文件命名。

  --必须通过使用 BACKUP LOG 提供事务日志的单独备份,才能使用文件和文件组备份来恢复数据库。如果恢复模型为 SIMPLE,则不允许文件和文件组备份。
    }    

备份完整数据库

BACKUP DATABASE { database_name | @database_name_var }     --database_name 数据库名或@database_name_var 变量

TO < backup_device > [ ,...n ]     --备份设备定义

[ WITH                 --WITH 选项

    [ BLOCKSIZE = { blocksize | @blocksize_variable } ]  --物理块大小,BACKUP会自动选择适合该设备的块大小

    [ [ , ] DESCRIPTION = { 'text' | @text_variable } ]      --描述备份集的自由格式文本

[ [ , ] DIFFERENTIAL ]    --差异备份

  [ [ , ] EXPIREDATE = { date | @date_var }  --备份集到期,该日期必须复合已配置的系统的datetime格式

| RETAINDAYS = { days | @days_var } ] --允许被重写日期。变量必须为整型

[ [ , ] PASSWORD = { password | @password_variable } ]  --备份集密码,需提供密码才能对改备份执行任何还原操作

    [ [ , ] FORMAT      --指定应将媒体头写入用于此备份操作的所有卷。任何现有的媒体头都被重写;

  | NOFORMAT ]    --默认,媒体头不应写入所有用于该备份操作的卷中,并且不要重写该备份设备除非指定了 INIT。

  [ [ , ] { INIT --重写所有备份集,保留媒体头,当备份设置没有全部过期、备份集名和备份媒体上的名称不匹配、用SKIP选项时不重写备份媒体,如有密码则不写入媒体

    | NOINIT } ]  --默认设置,备份集追加到指定磁盘或磁带,以保留现有的备份集.

  [ [ , ] MEDIADESCRIPTION = { 'text' | @text_variable } ] --媒体集的自由格式文本

   [ [ , ] MEDIANAME = { media_name | @media_name_variable } ]  --媒体集的媒体名

   [ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ] --媒体集密码

   [ [ , ] NAME = { backup_set_name | @backup_set_name_var } ]  --备份集的名称,不指定NAME则为空。

   [ [ , ] { NOSKIP  --默认行为,指示BACKUP语句检查媒体上所有备份集的到期日期,然后再允许它们被覆盖。

        | SKIP } ]        --禁止通过BACKUP语句执行的备份集过期和名称的检查,以防止备份集的覆盖。
    [ [ , ] { NOREWIND   --指定SQL Server将在备份操作后保持磁带打开状态。NOREWIND意味着NOUNLOAD,这些选项在单个BACKUP语句中是不兼容的

        | REWIND } ]   --默认值,指定SQL Server释放和倒带磁带。
    [ [ , ] { NOUNLOAD --指定在BACKUP操作后,磁带保持加载到磁带机上。

        | UNLOAD } ] --默认值,指定备份完成后磁带将自动倒带和卸载。
    [ [ , ] RESTART ] --从SQL Server 2008开始,没有任何效果。此选项被版本接受,与以前版本的SQL Server兼容。
    [ [ , ] STATS [ = percentage ] ] --每次其他百分比完成时显示一条消息,用于衡量进度。如果省略百分比,SQL Server会在每10%完成后显示一条消息

备份特定文件或文件组

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 [demoData_Log] TO  DISK = N'D:\Backup\demoData_Log.bak' WITH NOFORMAT,NOINIT,  NAME = N'demoData_Log-Transaction Log  Backup',SKIP, NOREWIND,NOUNLOAD,STATS = 10
GO

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 ]  --指定日志未被截断,并导致数据库引擎尝试备份,而不管数据库的状态如何。此选项允许在数据库损坏的情况下备份日志。

--没有NO_TRUNCATE选项,数据库必须处于ONLINE状态。如果数据库处于SUSPENDED状态,则可以通过指定NO_TRUNCATE来创建备份。

--但是,如果数据库处于OFFLINE或EMERGENCY状态,即使使用NO_TRUNCATE也不允许BACKUP。

        [ [ , ] { NORECOVERY --备份日志的尾部,并将数据库保留在RESTORING状态。故障切换到辅助数据库或在RESTORE操作之前保存日志的尾部时,非常有用。

             | STANDBY = undo_file_name } ] --备份日志的尾部,使数据库处于只读状态和待机状态。STANDBY子句写入备用数据(执行回滚,但可以进一步还原)。

        [ [ , ] { NOREWIND | REWIND } ]

        [ [ , ] { NOSKIP | SKIP } ]

        [ [ , ] { NOUNLOAD | UNLOAD } ]

        [ [ , ] RESTART ]

        [ [ , ] STATS [ = percentage ] ] 

    ]  } 

截断事务日志

BACKUP LOG { database_name | @database_name_var }
{     [ WITH
        { NO_LOG  | TRUNCATE_ONLY } ]  } 

--无须备份复制日志即删除不活动的日志部分,并且截断日志。该选项会释放空间。因为并不保存日志备份,所以没有必要指定备份设备。NO_LOG 和 TRUNCATE_ONLY 是同义的。

--使用 NO_LOG 或 TRUNCATE_ONLY 备份日志后,记录在日志中的更改不可恢复。为了恢复,请立即执行 BACKUP DATABASE。

--NO_TRUNCATE 允许在数据库损坏时备份日志。

Sqlserver 备份的更多相关文章

  1. sqlserver备份

    /// <summary> /// sqlserver备份 /// </summary> public class SqlserverBack : IBack { privat ...

  2. SqlServer:SqlServer(存储过程动态表查询(取消返回值),事务处理,批量还原sqlserver备份,强制删除被占用的数据库)

    1.存储过程动态表查询 USE [NETWORKING_AUDIT] GO /****** Object: StoredProcedure [dbo].[impConfigInfo] Script D ...

  3. SQLServer备份计划制定

    SQLServer备份计划制定 一.备份计划制定 管理-->维护计划-->维护计划向导: 可选择全库备份.差异备份.事务日志备份 为保障数据的完整性:可采用备份策略1.数据量小的场景,数据 ...

  4. SQLserver 备份和还原 失败

    错误一: 备份对于服务器“xxxxxx”失败. System.Data.SqlClient.SqlError: 无法使用备份文件 'C:\Program Files\Microsoft SQL Ser ...

  5. SQLSERVER备份事务日志的作用

    事务日志备份有以下3种类型 (1)纯日志备份:仅包含相隔一段时间的事务日志记录,而不包含任何大容量更改 (2)大容量操作日志备份.包括由大容量操作更改的日志和数据页,不支持时间点恢复 (3)尾日志备份 ...

  6. sqlserver备份的几种方式

    1.用sqlserver的维护计划 在这里我就不给截图演示了,这个比较简单,无非就是通过sqlserver自己的维护计划拖拽出2个一个‘备份数据库’任务和一个‘清除维护’任务. 需要注意的点: 1)有 ...

  7. SQLSERVER 备份数据库的注意事项

    1. SQLSERVER 有一个压缩备份集的功能,能够实现大概15%的压缩比(跟数据类型不同而不同) 之前竟然没发现...浪费了好多磁盘资源.. 多学习多思考..

  8. sqlserver 备份 与 还原

    背景 真是够懒得,一看这个内容,如此简单.当时的想法就是网上教程一堆,全记下来有啥意思,只是记录了要点.不过写到这里,也就写个别的吧.sqlserver与Oracle比起来,我感觉有个重要差距就是存储 ...

  9. sqlserver备份和恢复-5

    视图备份和恢复 备份 1. 2. 恢复 1. 2. 3.勾选覆盖现有数据库. 4. bat备份恢复 原文: https://www.cnblogs.com/lonelyxmas/p/7958649.h ...

  10. SQLServer备份脚本

    企业管理器--管理--SQL Server代理--右键作业--新建作业--"常规"项中输入作业名称--"步骤"项--新建--"步骤名"中输入 ...

随机推荐

  1. VS2012安装ClaudiaIDE失败

    上班看见同事的VS界面.如下图: 出于好奇就问他是怎么弄的,同事告诉我说是VS的一个插件ClaudiaIDE:于是我就去官网上下载ClaudiaIDE, 官网下载ClaudiaIDE链接:http:/ ...

  2. RabbitMQ之消息持久化(转)

    原文地址 https://blog.csdn.net/u013256816/article/details/60875666/ 消息的可靠性是RabbitMQ的一大特色,那么RabbitMQ是如何保证 ...

  3. 对于equals和==的理解

    很多时候equals和==大家都分不太清楚怎么样来使用,今天小编就来教大家怎么使用 equals比较的是两个变量的值是否相等 而==则比较的是这个变量的内存地址是否相同 打个比方来说 String a ...

  4. OSLab课堂作业2

      日期:2019/3/23 内容: 实现内容 要求 mysys.c 实现函数mysys,用于执行一个系统命令. mysys的功能与系统函数system相同,要求用进程管理相关系统调用自己实现一遍 使 ...

  5. 在linux下搭建python+django环境

    下载python3,进行编译安装,运行django程序 在 /opt目录中安装 cd /opt 1.解决python编译安装所需的软件依赖 yum install gcc patch libffi-d ...

  6. Django signal 信号机制的使用

    Django中提供了"信号调度",用于在框架执行操作时解耦,当某些动作发生的时候,系统会根据信号定义的函数执行相应的操作 一.Django中内置的 signal 类型主要包含以下几 ...

  7. 转载:在spring中嵌入activemq

    转载:http://www.dev26.com/blog/article/137 web开发站中的邮件发送使用了activemq我这是从网上找的进行了一些修改,记录下来,为了避免发送邮件时程序对用户操 ...

  8. 推荐算法之 slope one 算法

    1.示例引入 多个吃货在某美团的某家饭馆点餐,如下两道菜: 可乐鸡翅: 红烧肉: 顾客吃过后,会有相关的星级评分.假设评分如下: 评分 可乐鸡翅 红烧肉 小明 4 5 小红 4 3 小伟 2 3 小芳 ...

  9. SVN图形客户端上传静态库.a文件失败

    1.原因客户端未添加静态库 2.解决办法 到项目静态库所在目录用命令行添加静态库文件 svn add ****.a 3.可能存在问题 Mac OS的自带SVN版本过低不能添加,报错如下: svn: E ...

  10. Numpy学习50例

    基础部分 1.导入numpy模块 import numpy as np 2.查看numpy版本信息 print(np.__version__) numpy的主要对象的多维数组Ndarray.Numpy ...