自动维护计划
1)、启用SQL SERVERXP 代理服务 → SQL SERVER AGENT → 启动
2)、创建维护计划:
SQL SERVER → 管理→ 维护计划(maintenancePlans)
常用任务:
备份数据库
check Database Integrity Task:检查数据库的完整性
History cleanup Task: 清除历史记录,历史记录类型:备份、作业、维护计划
maintenance cleanup task:清除维护任务
rebuild index task:在数据表中重新生成索引
shrink databae task:收缩数据库
update statistic task:更新统计信息
管理表
创建表的目的在于利用表存储和管理数据。数据表的更新包括插入、删除、修改(也称为更新)三种操作
数据库管理
A、创建数据库TEST_DB,
CREATE DATABASE [test_db]
ON PRIMARY
(
NAME = N‘test_db‘,
FILENAME = N‘C:\ProgramFiles\Microsoft SQL
Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\test_db.mdf‘,
SIZE = 5MB ,
FILEGROWTH = 1MB
)
LOG ON
(
NAME = N‘test_db_log‘,
FILENAME = N‘C:\ProgramFiles\Microsoft SQL
Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\test_db_log.ldf‘, SIZE = 1024KB ,
FILEGROWTH = 10%)
GO
修改数据库,创建三个文件组,FG1,FG2,FG3
ALTER DATABASE [test_db] ADD FILEGROUP [FG1]
GO
ALTER DATABASE [test_db] ADD FILEGROUP [FG2]
GO
ALTER DATABASE [test_db] ADD FILEGROUP [FG3]
GO
B、修改数据库,创建三个文件,f1,f2,f3,并对应FG1,FG2,FG3
ALTER DATABASE [test_db]
ADD FILE
(
NAME = N‘f1‘,
FILENAME = N‘C:\ProgramFiles\Microsoft SQL
Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\f1.ndf‘,
SIZE = 2048KB ,
FILEGROWTH = 1024KB
)
TO FILEGROUP [FG1]
GO
ALTER DATABASE [test_db]
ADD FILE
(
NAME = N‘f2‘,
FILENAME = N‘C:\ProgramFiles\Microsoft SQL
Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\f2.ndf‘,
SIZE = 2048KB ,
FILEGROWTH = 1024KB
)
TO FILEGROUP [FG2]
GO
ALTER DATABASE [test_db]
ADD FILE
(
NAME = N‘f3‘,
FILENAME = N‘C:\ProgramFiles\Microsoft SQL
Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\f3.ndf‘,
SIZE = 2048KB ,
FILEGROWTH = 1024KB
)
TO FILEGROUP [FG3]
GO
创建数据表
A、从mydb 数据库中,将表timerecords 创建一份备份到demo_db 数据库中以下语句创建的表格等同于mydb 数据库中表timerecords 中的内容
use demo_db
go
select *
into timerecords
from mydb.dbo.TimeRecords
创建一份无数据但格式相同的表格:
select *
into timerecords
from mydb.dbo.TimeRecords
where 1 = 2
在where后指定一个不成立的条件即可.
若从不同服务器的数据库上导入数据表,需先对服务器进行服务器链接.
服务器级 → 服务器对象 → 链接服务器 → 新建链接服务器创建一份备份临时表:
select *
into #timerecords
from timerecords
一次插入多行数据:在表orders 中一次插入2 条数据
use demo_db
go
insert into Orders
values
(‘p01‘,‘2011-08-15‘,‘cisco‘,‘USA‘,‘5000‘),
(‘p02‘,‘2011-08-16‘,‘microsoft‘,‘USA‘,‘6000‘)
select * from sys.columns
where object_id = object_id(‘orders‘)
用于查询表employee 的列顺序,在insert 时,字段顺序需按照配置时进行插入
select * from sys.objects 查询系统对象
select * from sys.data_spaces 查询系统数据空间
select * from sys. 查询系统信息
数据表更新
A、将Orders 表中address 列的值全部改为CH
update Orders
set carrency = ‘CH‘
B、根据条件对数据进行修改:将orders 表中docno 为P01 的cust 值改为ABC
update orders
set cust = ‘ABC‘
where docno = ‘p01‘
C、将表orders 中的cust 设为空值
update Orders
set cust = ‘‘
D、从mydb 数据库中orders 表恢复列cust 的值到demo_db 数据库中orders
selecta.emp_id,b.card_id,a.card_id
--update Orders
--set cust = b.cust
from demo_db.dbo.Orders a join mydb.dbo.orders b
on a.docno = b.docno
一般在更改数据前,一定要执行查询操作
确认OK 后,再进行数据更改
E、基于子查询对数据进行更改:针对mydb 数据库中orders 表中不存在的cust 值,更改demo_db 数据库中orders 表中列cust 的值为bc
select * from orders
--update Orders
--set cust = ‘bc‘
where cust
not in (
select cust
from mydb.dbo.orders)
删除数据
delete Orders
where cust = ‘ABC‘
本文出自 “Ricky's Blog” 博客,请务必保留此出处http://57388.blog.51cto.com/47388/1628997
原文地址:http://57388.blog.51cto.com/47388/1628997