查看: 247|回复: 0

[SQLServer] Server SQL2008对文件的基础操作(1)

发表于 2017-12-7 08:00:01

1、一个文件的基本框架为:文件名、文件地址、文件大小、文件最大的大小、文件的增量(Filegrowth)。

2、文件有mdf、ndf、ldf 三种文件的区别。

3、文件组可以进行文件的管理 FileGroup 默认的文件组是 Primary 日志文件无文件组的概念,存在Log文件中。

4、 alter database 数据库名 add fileGroup 文件组名 --添加文件组

(文件)

to filegroup 文件组名 --将文件添加到相关的文件组中去

实例:

alter database Stu_db2 add filegroup file_group         --向数据库中添加了新的文件组,file_group

go

alter database Stu_db2 add file
(
name=N'new_datafile',
filename='D:\SQl_Project\SQL_02\new_datafile.ndf',
size=3072kb,
maxsize=unlimited,
filegrowth=1024kb
)
to filegroup file_group --向文件组中添加文件new_datafile

5、修改文件组为默认的文件组;
alter database 数据库名 modify filegroup 文件组名 default

6、修改文件组的名字
alter database 数据库名 modify filegroup 文件组名 name =新的文件组名

7.1、设置文件组为只读

alter database 数据库名 modify filegroup 文件组名 Readonly


7.2:设置文件组为可读写;

alter database 数据库名 modify filegroup 文件组名 readwrite


8、删除文件组

alter database 数据库名 remove filegroup 文件组名 *注意,删除文件组要确保文件组中没有数据文件。

9、查看数据库的大小:

exec/execute sp_spaceused

10、查看数据中文件的详细信息:

exec sp_helpdb 数据库名

10_1_1、 sp_configure 使用sp_configure存储过程可设置实例范围内的配置选项

11、删除数据库;

drop database 数据库名

12、修改数据库的名字;

alter database 数据库名 modify name=新的数据库名

13、如果数据库的空间不足,则可以通过以下的方法进行设置;

13.1.1、添加新的次要文件或次要的日志文件

13.1.2、修改增量和文件大小:
实例; alter database 数据库名
modify file
(
name=Onedb, --要修改的文件名
size=20, --文件大小
filegrowth=10% --文件的增量
)


14、收缩数据库

14.1.1、直接修改增量和文件大小,参考以上,只是把文件大小改小了。

14.2.1、设置数据库为自动收缩;

alter database 数据库名 set auto_shrink on --不是最优的方法

14.3.1、DBCC shrinkdatabase('要收缩的数据库名',可用空间的比例) 收缩数据库

**注意,如果收缩的是当前使用的数据库,则可以用0代替该数据库名。

14.4.1、DBCC shrinkfile('要收缩的数据库文件名',收缩文件大小) 收缩数据库文件

15、数据库快照(注意,只有企业版才支持快照的功能,标准版不支持)

15.1.1、创建数据库快照;

create database 快照名称
On
(
name=数据库中的文件名,
filename='快照文件的存放地址'
),
( --如果数据库中有多个文件的话,
要一一的将每个文件进行指定

as snapshot of 数据库名


15.2.1、查询数据库快照:

select*from 数据库快照名

15.3.1、数据快照是只读的,所以不能为其添加文件和数据

15.3.1、用快照对数据库进行恢复;

restore database 数据库名 from database_snapshot='数据库快照名'

16、分离数据库:

exec sp_detach_db 数据库名

17、附加数据库;

create database 新的数据库名
on
( filename='文件地址' --可以选择的附加数据库中的相关文件,建议全部附加),
(filename='')
for attach


18、如果附加的日志文件无法使用,则可以指定系统重新构建新的日志文件;

create database 数据库名 on
(filename='数据库文件所在的路径')
for attach_rebuild_log


19、移动数据库文件:

19.1.1、首先要讲数据库状态设为offline

19.2.1、alter database 数据库名 modify file(name=文件名,filename='新路径')

19.3.1、再将数据库的状态设置为online

20.1.1、完全备份数据库:

backup database 要备份的数据库名 to disk='备份文件存放的位置' with name='备份集名称',description='数据库描述【数据库完全备份/数据库差异备份】',init --指定重写所有备份集 noinit 不覆盖现有的备份


20.2.1、差异备份数据库;

back database 要备份的数据库名 to disk ='备份文件存放的位置' with differential [differential表示这是差异备份] ,description='数据库差异备份',init


21、还原数据库:

第一步:还原完全备份的数据:

restore database 数据库名 from disk='文件地址.bak' with file=1--备份设备中的第一个备份集,
norecovery , --不对数据库执行任何操作
nounload, --不对数据库做任何操作,不回滚相关的事物
replace, --覆盖现有的数据库

第二步:还原差异备份的数据:

restore database 数据库名 from disk='文件地址' with file=1--备份设备中的第一个备份集,
norecovery , --不对数据库执行任何操作
nounload, --不对数据库做任何操作,不回滚未提交的事物
replace, --覆盖现有的数据库

注意;如果还有差异备份的话,还要将差异备份中的数据进行还原,否则还原的过程会出错。


DDL:

1、在数据库中创建表;

create table 表明(列名 类型, ...)


2、在表中插入数据:

insert into 表名(列名1,列名2.、、、) values(对应列的值)

3、为表中更新数据:

updata 表名 set 列名 where 条件。

4、删除表/表中的数据【列/行】

delete 表名/表中数据

5、在sever sql 中变量分为局部变量和全局变量 ,声明局部变量用declare,变量名称的前面要有@字符。

6、全局变量: 见表格:全局变量。

7.1.1、其中数据类型要注意:decimal 和numeric

语法: decimal(p,s) --其中p:代表数的总位数,s:代表小数点后的小数位数。
numeric的语法与decimal类似的。

7.2.1、货币类型:

money/smallmoney

7.3.1、日期和时间数据类型; 见表格;

7.4.1、二进制数据类型;

binary[n] :如果没有指定n的值,则默认为1

7.5.1:其他数据类型:

timestamp:行版本,在创建表的时候无需给出列名,插入数据的时候也不用管。



回复

使用道具 举报

关闭

站长推荐上一条 /1 下一条