SQl Server 2008 知识点概括【数据库】

1. 第一章 数据库概述

  1. 什么是数据库?
    数据库是采用计算机技术统一管理的相关数据的集合,数据库能为各种用户共享,具有冗余度最小、数据之间联系密切、有较高数据独立性等特点。
  2. Microsoft SQL Server 系统的体系结构
    Microsoft SQL Server 2008系统由4个主要部分组成,这4个部分被称为4个服务,这些服务分别是数据库引擎、分析服务、报表服务和集成服务。
  • 数据库引擎(简称SSDE):是Microsoft SQL Server 2008系统的核心服务,负责完成业务数据的存储、处理、查询和安全管理等操作。
  • 分析服务(简称SSAS):提供了多维分析和数据挖掘功能,可以支持用户建立数据仓库和进行商业只能分析。
  • 报表服务(简称SSRS):为用户提供了支持Web的企业级的报表功能。
  • 集成服务(简称SSIS):是一个数据集成平台,可以完成有关数据的提取、转换、加载等。
  1. 数据库的类型和特点?
    Microsoft SQL Server 2008系统提供了两种类型的数据库,即系统数据库和用户数据库。
    系统数据库主要包括master、model、msdb、Resource和tempdb数据库。
    用户示例数据库主要包括AdventureWorks、AdventureWorksDW、AdventureWorksDW2008、AdventureWorksLT、AdventureWorksLT2008等数据库。

master数据库是最重要的系统数据库
model数据库是一个模板数据库
msdb是与SQLServerAgent服务相关的数据库
tempdb是一个临时数据库,用于存储查询过程中所使用的中间数据或结果

  1. OLTP和OLAP
    在OLTP数据库中,数据是按照二维表格的形式来存储的。OLTP数据库的主要作用是降低存储在数据库中的各种信息的冗余度和加快对数据的检索、插入、更新及删除速度。典型的OLTP数据库应用包括制造企业的物料管理信息系统、航空公司的机票销售信息系统、大学生图书管理信息系统、银行的存储业务信息系统等。
    OLAP从结构上来看,存储模型常见的结构式是星型结构或雪崩结构。从使用目的来看,OLAP数据库的主要作用是提高系统对数据的检索和分析速度。
  2. 管理工具
    数据库管理工具主要包括:Microsoft SQL Server Management Studio、SQL Server配置管理工具、SQL Server Profiler、“数据库引擎优化顾问”以及大量的命令行实用工具

Microsoft SQL Server Management Studio:将各种图形化工具和多功能的脚本编辑器组合在一起,完成访问、配置、控制、管理和开发SQL Server的所有工作,大大方便了技术人员和数据库管理员对SQL Server系统的各种访问。
SQL Server Profiler:可以对Microsoft SQL Server 2008系统的运行过程进行摄录

  1. 数据库管理员
    作为一个数据库管理员,简称DBA,至少应该做好以下12项任务:
    (1)安装和配置
    (2)容量规划
    (3)应用架构设计
    (4)管理数据库对象(表,索引,视图,存储过程,函数,触发器,同义词等)
    (5)存储管理空间
    (6)安全管理
    (7)备份与恢复
    (8)性能监视和调优
    (9)调度作业
    (10)网络管理
    (11)高可用性和高伸缩性
    (12)故障解决

2. 第二章 管理安全性

  1. 管理登录名
    管理登录名包括创建登录名、设置密码策略、查看登录名信息及修改和删除登录名等。
    (1)创建登录名
create login [将要创建的基于Windows登录名的登录名] //方括号必须的
from windows
go

(2)创建有默认数据库的登录名

create login [将要创建的基于Windows登录名的登录名]
from windows
with default_database = AdventureWorks
go

如果没有为新建的登录名明确的指出默认数据库,那么默认数据库是master数据库
(3)创建SQL Server登录名

create login Peter
with password = '11111'
  1. 维护登录名
    (1)使用alter login 修改登录名
alter login Peter
with name = roudo

(2)修改roudo登录名的密码

alter login roudo
with password = '11111'

(3)禁用和启用登录名

//禁用登录名
alter login roudo disable
//启用登录名
alter login roudo enable
  1. 服务器角色
    固定服务器角色式服务级别的主体,他们的作用范围是整个服务器
    固定服务器角色已经具备了执行指定操作的权限,可以把其他登录名作为成员添加到固定服务器角色中。
    固定服务器角色的权限是固定不变的,既不能被删除,也不能增加。sysadmin固定服务器角色拥有的权限最多,可以执行系统中的所有操作。
    • 如果希望指定的登录名成为某个固定服务器角色的成员,可以使用sp_addsrvrolemember存储过程来完成这种操作,语法如下:
sp_addsrvrolemember ‘login-name’, 'role-name'
- 如果希望指定的登录名成为某个固定服务器角色的成员,可以使用is_srvrolemember
- 如果希望把固定服务器角色的某个成员删除,可以使用sp_dropsrvrolemember
  1. 创建用户
    create user
    (1)创建登录名的数据库用户
create user peter_user
from login peter

(2)创建带有默认架构的数据库用户

create user bobbie_hrm
from login [ ]
with default_schema = hrmanager

注意:数据库中的每一个用户可以对应多个架构,但是只能对应一个默认架构
dbo是数据库的默认用户

  1. 管理架构
    架构是形成单个命名空间的数据库实体的集合。架构是数据库级的安全对象,是数据库对象的容器。
    (1)创建架构
    create schema
    这个语句不仅可以创建架构,同时还可以创建该架构所拥有的表、视图并且可以对这些对象设置权限。
    (2)创建有明确所有者的架构
create schema SaleManager
authorization peter_user

(3)创建架构的同时创建一个表

create schema Manager
authorization peter_user
create table elecTravelHuman(Emp ID INT, EmpName Varchar(126))

(4)创建架构的同时创建表和管理权限

create schema Manager
authorization peter_user
create table elecTravelHuman(Emp ID INT, EmpName Varchar(126))
grant select to guest
  1. 修改和删除架构
    修改架构是指将特定架构中的对象转移到其他架构中
    可以使用alter schema语句完成对架构的修改
  2. 数据库角色
    管理数据库角色包括创建数据库角色、添加和删除数据库角色成员、查看数据库角色信息及修改和删除角色等。
    (1)创建简单的角色
create role

(2)sp_addrolemember为角色添加成员

sp_addrolemember 'role_name', 'security_account'

(3)其他操作
与sp_addrolemember存储过程相对应的是sp_droprolemember存储过程,后者可以删除指定数据库角色中的成员。
8. 常用对象的权限
(1)授予权限
使用grant语句将安全对象的权限授予指定的安全主体

grant control to tomson_hrm
对数据库的control权限授予给了tomson_hrm用户
grant create table to peter_user
该用户拥有了可以在当前数据库中执行创建表的操作
grant create table to cleon with grant option

可以使cleon用户可以将create table权限转授给其他用户。
(2)收回权限
使用revoke语句可以从某个安全主体处收回权限

revoke select on sales.customer
from cleon
使用revoke语句收回授予的权限

3. 第三章 管理数据库

  1. 数据库文件
    一个数据库至少有一个数据文件和一个事务日志文件
    数据文件用于存放数据库的数据和各种对象,而事务日志文件用于存放事务日志。一个数据库最多可以拥有32767个数据文件和32767个日志文件。
  2. 创建数据库
    具有create database、create any database 或 alter any database权限的用户才可以执行创建数据库的操作。
    (1)创建简单数据库
create database 名字

(2)使用create database语句创建数据库

create database LCBCom
on {
	name = LCBCom_DATA,
	filename = 'D:\......',
	size = 6,
	maxsize = 20,
	filegrowth = 10%
	}
log on {
	name = LCBCom_LOG,
	filename = 'D:\....',
	size = 2MB,
	maxsize = 10MB,
	filename = 1MB
	}
  1. 数据库选项
    数据库状态选项类型:
    online(在线状态或联机状态)
    offline (离线状态或脱机状态)
    emergency(紧急状态,数据库标记为read_only,不能只执行日志文件,只能由sysadmin固定服务器角色成员访问)
    控制用户对数据库访问选项:
    single_user(单用户模式,一次只能有一个用户访问数据库)
    restricted_user(限制用户模式,只能由sysadmin固定服务器角色成员,db_owner等访问数据库)
    multi_user(多用户模式,正常状态,有访问权限的用户都可以访问数据库)
  2. 修改数据库
alter database

(1)更改数据库名称

alter database database_name modify name = new database_name
  1. 管理数据库快照
    数据快照提供了源数据库在创建快照时刻的只读、静态视图,可以有效的支持报表数据汇总和数据分析等只读操作。
    需要说明的是:数据库快照必须与源数据库在同一个服务器实例上
    (1)数据库快照作用
  • 提供了一个静态的视图来为报表提供服务
  • 可以利用数据库快照来恢复数据库
  • 和数据库镜像结合使用,提供读写分离
  • 作为测试环境或数据变更前的备份,比如我要大批导入或删除数据前,或是将数据提供给测试人员进行测试前,做一个快照,如果出现问题,则可以利用快照恢复到快照建立时的状态

(2)创建数据库快照

 create database database_snapshot_name
 on (
 	name = source_database_logical_file_name,
 	filename  = 'os_file_name',
 	)
 	as snapshot of source_database_name

RAID它就是将多个独立的硬盘进行组合,并将其容量叠加在一起,再利用个别硬盘提供数据所产生的加成效果,提升整个硬盘系统性能。 同时,还可以通过存储冗余数据来增加容错能力,以获得更加安全的数据存储环境

4. 第四章 T-SQL语言

  1. T-SQL语言和SQL关系
    SQL Server是结构化查询语言,是目前关系型数据库管理系统中使用最广泛的查询语言 T-SQL即 Transact-SQL,是标准SQL语言的扩展,是SQL Server的核心,在SQL的的基础上添加了变量,运算符,函数和流程控制等新内容
  2. 类型
    T-SQL语言分为5种类型:
  • 数据定义语言(DDL):create、alter、drop
  • 数据操纵语言(DML):insert、update、delete、select
  • 数据控制语言(DCL):grant、revoke、deny
  • 事务管理语言(TML):commit、rollback
  1. 附加的语言元素
  • 标识符
    在T-SQL语言中,数据库对象的名称就是其标识符
  • 分割标识符
    有两种情况下使用标识符:(1)对象名称中包含了Microsoft SQL Server保留字,例如[where]分割标识符;
    (2)对象名称中使用了未列入限定字符的字符,例如[product[1] table]分割标识符.
    当Ouoted_Indentifier选项设置为on时,才能使用引用的标识符
  • 变量和常量
  • 声明和赋值
    (1)在T-SQL语言中,可以使用declare语句声明变量。在声明变量的时候需要注意:第一,为变量指定名称,且名称的第一个字符必须为@;第二,指定该变量的数据类型和长度;第三,默认情况下将该变量的变量值设置为NULL。
    (2)可以在一个declare语句中声明多个变量,变量之间使用逗号分割开。变量的作用域是可以引用该变量的Transact-SQL语句的范围。
    (3)有两种为变量赋值的方式: 使用set语句为变量赋值和使用select语句选择列表中当前所引用值来为白能量赋值。
  • 使用变量
declare @yearCounter INT
SET @yearCounter = 1
WHILE (@yearCounter < 2012)
	SET @yearCounter = @yearCounter + 1
PRINT @yearCounter
  • 错误捕捉语言
    在T-SQL语言中,可以使用try…catch构造和使用@@Error函数
    在T-SQL语句中,可以使用try…catch构造来处理T-SQL代码中的错误

5. 第五章 表

  1. 创建和修改表
create table students(
	studentNumber int not null,
	studentName varchar(32) not null,
	gender char(2) null,
	birthday datetime null,
	birthplace varchar(32) null,
	telphone_no varchar(32) null,
	address varchar(128) null,
	others varchar(256) null
	)

当在表名称前面使用一个#符号时,表示创建的表是本地临时表,该表只能由创建者使用。如果表名称前面使用了两个#符号,那么表示该表是全局临时表,在其生存期间可以为所有的用户使用。
2. 增加或删除列

alter table abc_table
add column_b varchar(20) not null
create table abc_table(
	column_a int, column_b varchar(20)null)
alter table abc_table
drop column column_b
  1. 更改该列的数据类型
alter table table_name alter column column_name new_type_name

注意:如果表中没有数据,那么对表中列的数据类型的更改可以是任意的。但是,如果表中已经包含了数据,对表中列的数据类型的更改将涉及到这些列中的数据是否能够与新数据类型一致的问题。因此,这时要求更改后的列的数据类型应该是更改前的数据类型可以隐式转换的数据类型。
4. 创建和修改标识符列
标识符列是唯一标识表中每一行数据的符号。
(1)IDENTITY
作用范围是表
使用IDENTITY属性的列是IDENTITY列,每一个表中最多只能有一个IDENTITY列。

IDENTITY(seed, increment)

seed:指定该列的种子值
increment:指定该列的增量值
这两个值得默认值都是1
可以在create table 语句或alter table语句中使用IDENTITY属性。由于IDENTITY属性是作为列得属性在列上定义,因此对IDENTITY列得数据类型有所限制,SQL Server系统要求IDENTITY列得数据类型可以是整数数据类型或者是可以转换为整数数据的数据类型,并且不允许是空值。
(2)ROWGUIDCOL列
ROWGUIDCOL列是全局唯一标识的符号,每一个表中最多允许创建一个ROWGUIDCOL列。ROWGUIDCOL列的值是不能自动生成的,一般使用newId函数来为该列提供数据。

  1. 已分区表
    如果一个表中包含了大量的、以多种不同方式使用的数据,一般的查询又不能按照预期的成本完成,就应该考虑使用已分区表。已分区表是指按照数据水平方式分区,将数据分布于一个数据库的多个不同的文件组中。在对数据进行查询或更新时,这些已分区表将被视为独立的逻辑单元。

创建分区表的主要步骤如下:

  • 创建分区函数,指定如何分区
  • 创建分区方案,指定分区函数的分区在文件组上的位置
  • 创建使用分区方案的表

6. 第六章 操纵数据

  1. 分组技术
    group by子句
    聚合函数只能产生一个单一的汇总数据,使用group by 子句,则可以生成分组的汇总数据。group by 子句把数据组织起来分成组。
    group by 子句,having子句和聚合函数一起完成对每一个组生成一行和一个汇总值。在使用group by 子句和having子句的过程中,要求考虑下列一些条件:
  • 在select子句中的非合计列必须出现在group by 子句中
  • 在having子句中的列只返回一个值
  • 因为having子句是作为group by子句的条件出现的,所以having子句必须与group by子句同时出现,并且必须在group by 子句之后出现。
  • group by子句可以包括表达式
  • group by all显示出所有组,甚至那些不满足where子句条件的组也显示出来。如果group by all 和having 子句同时出现,那么having条件将覆盖all。
  1. 连接技术
  • 交叉连接(笛卡尔乘积)cross join
  • 内连接 inner join连接运算符和on关键字指定连接条件
  • 外连接 left outer joinright outer joinfull outer join

7. 第七章 索引

  1. 索引
    索引是一种与表或视图关联的物理结构,可以用来加快从表或视图中检索数据行的速度。

  2. 为什么创建索引?
    (1)创建唯一性索引,可以保证每一行数的唯一性。
    (2)可以大大加快数据的检索速度。
    (3)可以加速表和表之间的连接。
    (4)在使用group by 和order by子句进行数据检索时,可以显著减少查询中分组和排序的时间。
    (5)通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能

  3. 不利之处
    (1)创建索引和维护索引要耗费时间
    (2)索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间。
    (3)对表中的数据进行增加、删除和修改时,索引也要动态的维护,这样就降低了数据的维护速度。

  4. 索引的类型和特点
    (1)聚集索引和非聚集索引
    聚集索引是一种数据表的物理顺序与索引顺序相同的索引,非聚集索引则是一种数据表的物理顺序与索引顺序不相同的索引。

    当创建聚集索引时,应该考虑下列因素:

    • 每一个表最多只能有一个聚集索引
    • 表中行的物理顺序和索引中行的顺序是相同的
    • 索引键值的唯一性可以使用unique关键字明确维护,或由一个内部的唯一标识符明确维护。
    • 对于频繁更改的列不适合创建聚集索引

(2)非聚集索引与聚集索引的区别?

  • 聚集索引一个表只能有一个,而非聚集索引一个表可以存在多个
  • 聚集索引存储记录是物理上连续存在,而非聚集索引是逻辑上的连续,物理存储并不连续
  • 聚集索引:物理存储按照索引排序;聚集索引是一种索引组织形式,索引的键值逻辑顺序决定了表数据行的物理存储顺序。
  • 非聚集索引:物理存储不按照索引排序;非聚集索引则就是普通索引了,仅仅只是对数据列创建相应的索引,不影响整个表的物理存储顺序。
  • 索引是通过二叉树的数据结构来描述的,我们可以这么理解聚簇索引:索引的叶节点就是数据节点。而非聚簇索引的叶节点仍然是索引节点,只不过有一个指针指向对应的数据块。
  • 非聚集索引与聚集索引的区别在于非聚集索引的叶子节点不存储表中的数据,而是存储该列对应的主键

8. 第八章 数据完整性

  1. 数据完整性就是指存储在数据库中的数据的一致性和准确性。分为3种类型:域完整性实体完整性引用完整性
  2. 约束的概念和类型
    约束是通过限制列中数据、行中数据和表之间的数据来保证数据完整性的非常有效的方法。约束可以确保把有效的数据输入到列中并维护表和表之间的特定关系。系统提供了5种约束类型:
    (1)DEFAULT约束

使用create table 语句定义default约束:

create table students(
	student ID INT,
	studentName VARCHAR(60),
	gender CHAR(1) DEFAULT 'M',
	birthdate DATETIME,
	SSL  CHAR(18)
)

使用 alter table 语句定义default约束:

alter table students
	ADD constraint D_student_birthdate
	DEFAULT '1990-01-01',
	FOR birthdate

当使用default约束时,需要考虑下列因素:

  • 定义的常量值必须与该列的数据类型和精度是一致的。
  • default约束只能应用于insert语句
  • 每一个列只能定义一个default约束。
  • default约束不能放在有identity属性的列上或者数据类型为timestamp的列上。

(2)CHECK约束
使用create table 语句定义check约束

create table students(
	student ID INT,
	studentName VARCHAR(60),
	gender CHAR(1) DEFAULT 'M' CHECK (gender = 'F' OR gender = 'M'),
	birthdate DATETIME,
	SSL  CHAR(18)
)

使用alter table 语句定义check约束

alter table students
	ADD CHECK (birthdate >= '1980-01-01' AND birthdate <= '1990-12-31')

当使用检查约束时,需要考虑下列因素:

  • 一个列上可以定义多个check约束
  • 执行insert 语句或者update 语句时,该约束验证相应的数据是否满足check约束的条件。
  • check约束可以参考本表中的其他列
  • check约束不能包含子查询语句
    (3)主键约束
    在create table语句中定义主键约束
create table students(
	student ID INT PRIMARY KEY,
	studentName VARCHAR(60),
	gender CHAR(1) DEFAULT 'M' CHECK (gender = 'F' OR gender = 'M'),
	birthdate DATETIME,
	SSL  CHAR(18)
)

定义包含了两个列的逐渐约束

create table nationalStudents(
	university ID INT NOT NULL,
	student ID INT NOT NULL,
	PRIMARY KEY(university ID, student ID),
	studentName VARCHAR(60),
	gender CHAR(1)
	birthdate DATETIME,
	SSL  CHAR(18)
)

当使用主键约束时,应该考虑下列因素:

  • 每一个表最多只能定义一个主键约束
  • 主键列所输入的值必须时唯一的
  • 主键列不允许空值

(4)UNIQUE约束
使用alter table 语句定义unique约束

alter table students
	ADD UNIQUE(SSL)

在创建unique约束时,需要考虑下列因素:

  • unique约束所在的列允许空值
  • 一个表中可以有多个unique约束
  • 可以把unique约束放在一个或者多个列上,这些列或列的组合必须有唯一的值
  • unique约束强制在指定的列上创建一个唯一性索引

(5)外键约束

9. 第九章 视图

  1. 视图的概念
    视图是查看数据库表中数据的一种方式,是一个虚拟的表,是一个表中的数据经过某种筛选后的显示方式,视图由一个预定义的查询select语句组成。

  2. 视图的特点。

视图中的数据并不属于视图本身,而是属于基本的表,对视图可以像表一样进行insert,update,delete操作。

视图不能被修改,表修改或者删除后应该删除视图再重建。

视图的数量没有限制,但是命名不能和视图以及表重复,具有唯一性。

视图可以被嵌套,一个视图中可以嵌套另一个视图。

视图不能索引,不能有相关联的触发器和默认值,sql server不能在视图后使用order by排序。

  1. 为什么要使用视图

①简化数据操作:视图可以简化用户处理数据的方式。

②着重于特定数据:不必要的数据或敏感数据可以不出现在视图中。

③视图提供了一个简单而有效的安全机制,可以定制不同用户对数据的访问权限。

④提供向后兼容性:视图使用户能够在表的架构更改时为表创建向后兼容接口。

⑤自定义数据:视图允许用户以不同方式查看数据。

⑥导出和导入数据:可使用视图将数据导出到其他应用程序。

  1. 视图的类型
    SQL server中,一般把视图分为三类: 标准视图、索引视图、分区视图.一般情况下我们使用的视图都是标准视图,它是一个虚拟表,不占物理存储空间.如果要提高聚合多行数据的视图性能,可以创建索引视图.索引视图是被物理化的视图,它包含经过计算的物理数据.使用分区视图可以连接一台或多台服务器中成员表的分区数据,使得这些数据看起来就像来自一个表中一样.
  2. 创建视图
create VIEW view_name
as
select_statement

如果希望加密定义文本,可以在定义视图时使用with encryption 子句
如果不希望更改视图的基表,可以在定义新视图时使用with schemabinding子句
删除视图:DROP VIEW view_name

10. 第十章 存储过程、触发器

  1. 存储过程的特点、类型和作用
  • 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。 存储过程是数据库中的一个重要对象。
    (1)存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而
    一般SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速
    度。
    (2)当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
    (3)存储过程可以重复使用,可减少数据库开发人员的工作量
    (4)安全性高,可设定只有某此用户才具有对指定存储过程的使用权

  • 存储过程的类型有3种:用户定义的存储过程、扩展存储过程和系统存储过程

  • 存储过程的优点:
    (1)减少网络通信量。
    (2)执行速度更快。
    (3)更强的适应性。
    (4) 分布式工作。

  1. 创建存储过程的规则
    (1)使用create procedure语句创建存储过程
create procedure procedure_name
parameter_name data_type, ...
with producedure_option
as
aql_statement

(2)创建一个简单的存储过程

create procedure HumanResources.Get EmployeeFullName
AS
select lastName, firstName, Department
from humanResources, vEmployeeDepartment

(3)创建一个带参数的存储过程

create procedure HumanResources.Get EmployeeInfo
	@LastName VARCHAR(50)
	@FirstName VARCHAR(50)
AS
SELECT LastName, FirstName, JobTitle, Department
From HumanResources.Get EmployeeFullName
where lastname = @lastname
AND firstname = @firstname

(3)创建带有output类型参数的存储过程

create procedure dbo.ComputePlus
	@FirstPara decimal(10, 2),
	@SecondPara decimal(10, 2),
	@PlusResult decimal(10,2) output
AS
SET @PlusResult = @FirstPara + @SecondPara
  1. 执行存储过程
    execute语句执行存储过程
    (1)执行简单的存储过程
EXEC HumanResources.Get EmployeeFullName

(2)为存储过程直接提供参数值

EXEC HumanResources.Get EmployeeInfo
	'Glimp', 'Diane'

(3)为存储过程间接提供参数值

declare @LastName VARCHAR(50)
declare @FirstName VARCHAR(50)
set @LastName = 'Glimp'
set @FirstName = 'Diane'
EXEC HumanResources.Get EmployeeInfo
	@LastName, @FirstName

(4)使用output参数执行存储过程

declare @result decimal(10, 2)
EXEC dbo.ComputePlus 123, 568, @result output
print @result
  1. 修改和删除存储过程
    (1)删除存储过程
drop  procedure HumanResources.Get EmployeeInfo

(2)修改存储过程

alter procedure
  1. 存储过程的执行过程
    存储过程创建之后,在第一次执行时需要经过语法分析阶段、解析阶段、编译阶段和执行阶段。
  2. 查看存储过程的信息
object_definition
  1. 触发器
    (1)创建DML触发器
create trigger trigger_name
on table_name_or_view_name
with encryption
{for|after|instend of}{[delete][,][insert][,][update]}
as sql_statement

(2)创建DDL触发器

create trigger trigger_name
on {all server|database}
with encryption
{for|after}{event_type}
as sql_statement

第十一章 备份和还原

  1. 数据的恢复模式
  • 完整恢复模式(等级最高)
  • 大容量日志记录恢复模式
  • 简单恢复模式
  1. 备份有四种方式
  • 全备份:创建备份完成时数据库内存在的数据的副本;
  • 差异备份:只记录自上次数据库备份后发生更改的数据。 差异数据库备份比数据库备份小,而且备份速度快,因此可以更经常地备份,经常备份将减少丢失数据的危险;
  • 日志备份:是自上次备份事务日志后对数据库执行的所有事务的一系列记录。 可以使用事务日志备份将数据库恢复到特定的即时点(如输入多余数据前的那一点)或恢复到故障点;
  • 文件组备份:可以备份和还原数据库中的个别文件。 可以只还原已损坏的文件,而不用还原数据库的其余部分,从而加快了恢复速度。
  1. 备份的动态特点
  • 检查点机制检查数据库,记录最早的事务日志记录的日志序列号
  • 通过之间阅读磁盘,把全部的数据页写进备份介质中
  • 从捕捉到的序列号到日志末尾,写全部的事务日志记录
  1. 创建永久性的备份文件
sp_addumpdevice 'device_type',’logical_name‘,’physical_name‘
EXEC sp_addumpdevice 'disk', 'testfile', 'c:\temp\testfile.bak'
5. 创建临时性备份文件
backup database master
	to disk = 'c:\temp\masterBackup_1215.bak'

你可能感兴趣的:(数据库,microsoft,数据仓库)