1. 创建数据库
create database语法:
create database database_name [ on [ primary ] filespec> [ ,...n ] [ , [ ,...n ] ] [ log on [ ,...n ] ] ] [ collate collation_name ]filespec> ::= {( name = logical_file_name , filename = { 'os_file_name' | 'filestream_path' } [ , size = size [ kb | mb | gb | tb ] ] [ , maxsize = { max_size [ kb | mb | gb | tb ] | unlimited } ] [ , filegrowth = growth_increment [ kb | mb | gb | tb | % ] ])}
on:用来定义数据库的数据文件。primary指出其后所定义的文件是主数据文件,如果省略,则第一个定义的文件是主数据文件。
log on:用来定义数据库的日志文件。如果没有log on,sql server将自动创建一个日志文件。
数据库中的文件类型与推荐扩展名:主要数据文件.mdf ,次要数据文件.ndf ,事务日志.ldf 。
创建未指定文件的数据库:
-- drop the database if it already existsif exists ( select name from sys.databases where name = n'portal')drop database portalgocreate database portalgo
创建指定数据文件和事务日志文件的数据库:
create database [portal] on primary ( name = n'portal', filename = n'f:\database\portal.mdf' , size = 5mb , filegrowth = 1mb ) log on( name = n'portal_log', filename = n'f:\database\portal_log.ldf' , size = 2mb , filegrowth = 10%)
创建数据库指定多个数据及事务日志文件:
create database [portal] on primary ( name = n'portal', filename = n'f:\database\portal.mdf' , size = 5mb , filegrowth = 1mb ), ( name = n'portal_data_2014', filename = n'f:\database\portal_data_2014.ndf' , size = 5mb , filegrowth = 1mb ) log on( name = n'portal_log', filename = n'f:\database\portal_log.ldf' , size = 2mb , filegrowth = 10%),( name = n'portal_log_2014', filename = n'f:\database\portal_log_2014.ldf' , size = 2mb , filegrowth = 10%)
创建具有文件组的数据库:
create database [portal] on primary ( name = n'portal', filename = n'f:\database\portal.mdf' , size = 10mb , filegrowth = 1mb ), filegroup [div2014] ( name = n'portal_data_2014', filename = n'f:\database\portal_data_2014.ndf' , size = 5mb , filegrowth = 1mb ) log on( name = n'portal_log', filename = n'f:\database\portal_log.ldf' , size = 2mb , filegrowth = 10%)
2. 修改数据库
修改数据库语法:
alter database database_name { add_or_modify_files> | add_or_modify_filegroups>}[;]add_or_modify_files>::={ add file filespec> [ ,...n ] [ to filegroup { filegroup_name } ] | add log file filespec> [ ,...n ] | remove file logical_file_name | modify file filespec>}filespec>::= ( name = logical_file_name [ , newname = new_logical_name ] [ , filename = {'os_file_name' | 'filestream_path' | 'memory_optimized_data_path' } ] [ , size = size [ kb | mb | gb | tb ] ] [ , maxsize = { max_size [ kb | mb | gb | tb ] | unlimited } ] [ , filegrowth = growth_increment [ kb | mb | gb | tb| % ] ] [ , offline ]) add_or_modify_filegroups>::={ | add filegroup filegroup_name [ contains filestream | contains memory_optimized_data ] | remove filegroup filegroup_name | modify filegroup filegroup_name { filegroup_updatability_option> | default | name = new_filegroup_name }}filegroup_updatability_option>::={ { readonly | readwrite } | { read_only | read_write }}
新增文件组:
alter database [portal] add filegroup [div2014]
新增文件指定文件组:
alter database [portal] add file( name = n'portal_data_2014', filename = n'f:\database\portal_data_2014.ndf' , size = 5mb , filegrowth = 1mb)to filegroup [div2014]
删除数据库文件:
alter database [portal] remove file portal_data_2014
修改数据名称:
alter database [portal] modify name = [portal_2014]
exec sp_renamedb [portal], [portal_2014]
修改设置默认文件组:
alter database [portal] modify filegroup [primary] default
3. 删除数据库
删除数据库语法:
drop database { database_name | database_snapshot_name } [ ,...n ] [;]
示例:
drop database [portal]
4. 分离数据库
使用系统存储过程sp_detach_db分离数据库。
sp_detach_db [ @dbname= ] 'database_name' [ , [ @skipchecks= ] 'skipchecks' ] [ , [ @keepfulltextindexfile = ] 'keepfulltextindexfile' ]
exec sp_detach_db [portal]
直接运行分离数据库的sql语句,可能会提示有进程(用户)正在使用,分离失败。要解决这个问题,先查看哪些进程(用户)正在使用该数据库。
查看用户和进程:
use [master]sp_who
先结束占用数据库的进程,再分离数据库:
use [master]kill 55kill 56kill 57exec sp_detach_db [portal]
5. 附加数据库
使用create database附加数据库:
create database [portal]on( filename = 'f:\database\portal.mdf')for attach
create database [portal]on( filename = 'f:\database\portal.mdf'),( filename = 'f:\database\portal_log.ldf')for attach
使用系统存储过程附加数据库:
exec sp_attach_db [portal], 'f:\database\portal.mdf'
exec sp_attach_db [portal], 'f:\database\portal.mdf', 'f:\database\portal_log.ldf'
6. 查看数据库信息
sql server中可以使用多种方式查看数据库信息,例如使用目录视图、函数、存储过程等。
6.1> 使用目录视图
使用目录视图查看数据库基本信息:
◊ sys.databse_files:查看数据库文件信息;
◊ sys.filegroups:查看数据库组信息;
◊ sys.master_files:查看数据库文件的基本信息和状态信息;
◊ sys.database:数据库和文件目录视图查看数据库的基本信息。
select * from sys.databases where name = 'northwind'
