Sql Server系列:数据库操作
1 创建数据库
1.1 CREATE DATABASE语法
CREATE DATABASE database_name [ ON [ PRIMARY ] <filespec> [ ,...n ] [ , <filegroup> [ ,...n ] ] [ LOG ON <filespec> [ ,...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 。
1.2 创建未指定文件的数据库
-- Drop the database if it already exists IF EXISTS (SELECT name FROM sys.databases WHERE name = N'Portal' ) DROP DATABASE Portal GOCREATE DATABASE Portal GO
1.3 创建指定数据文件和事务日志文件的数据库
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% )
1.4 创建数据库指定多个数据及事务日志文件
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% )
1.5 创建具有文件组的数据库
CREATE DATABASE [Portal]ON PRIMARY (NAME = N'Portal',FILENAME = N'F:\Database\Portal.mdf' ,SIZE = 10MB ,FILEGROWTH = 1MB),FILEGROUP [SECTION2014] (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 修改数据库
2.1 修改数据库语法
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 } }
2.2 新增文件组
ALTER DATABASE [Portal] ADD FILEGROUP [SECTION2014]
2.3 新增文件指定文件组
ALTER DATABASE [Portal] ADD FILE (NAME = N'Portal_Data_2014',FILENAME = N'F:\Database\Portal_Data_2014.ndf' ,SIZE = 5MB ,FILEGROWTH = 1MB ) TO FILEGROUP [SECTION2014]
2.4 删除数据库文件
ALTER DATABASE [Portal] REMOVE FILE Portal_Data_2014
2.5 修改数据名称
ALTER DATABASE [Portal] MODIFY NAME = [Portal_2014]
EXEC sp_renamedb [Portal], [Portal_2014]
2.6 修改设置默认文件组
ALTER DATABASE [Portal] MODIFY FILEGROUP [PRIMARY] DEFAULT
3. 删除数据库
3.1 删除数据库语法
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 55 KILL 56 KILL 57EXEC sp_detach_db [Portal]
5 附加数据库
5.1 使用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
5.2 使用系统存储过程附加数据库
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'
6.2 sp_helpdb
语法
sp_helpdb [ [ @dbname= ] 'name' ]
示例
EXEC sp_helpdb [Portal]
Sql Server系列:数据库操作相关推荐
- sql server还原数据库操作步骤
当其他人发送给我们一个系统的数据库时,我们需要在自己的机器上sql server中还原数据库,才能在本地运行系统,查看数据库.具体操作步骤如下: (1)我们接收到的数据库是一个"文件&quo ...
- 数据库封装 sql server mysql_sqlserver数据库操作封装
1 public classSQLServerDatabase2 {3 private static SqlConnection m_Connection = null;4 5 public SQLS ...
- SQL SERVER语句——数据库操作(以银行贷款数据关系为例)
1.创建数据库 1.1创建未指定文件夹的数据库 CREATE DATABASE Bank 1.2创建指定事务和数据文件的数据库 CREATE DATABASE Bank ON (NAME = Bank ...
- tempdb SQL Server系统数据库的配置,操作和限制
介绍 (Introduction) tempdb is one of the 4 system databases that exists in all SQL Server instances. T ...
- SQL SERVER 系列(2)数据库的创建、修改和删除
上篇SQL SERVER系列文章中我们介绍了SQL SERVER 2005的安装与介绍.有了它,我们当然要让它给我们干活了,现在我就介绍介绍数据库这一方面的知识吧.<?xml:namespace ...
- sql server跨服务器修改数据,SQL Server跨数据库服务器查询和跨表更新的详细操作...
SQL Server数据库跨数据库服务器查询和跨表更新的相关知识是本文我们主要要介绍的内容,接下来我们就通过一个实例来介绍这一过程.实例是这样的:想实现的功能很简单, 在我的本地一个表用来保存省的信息 ...
- Sql Server 和 Access 操作数据库结构Sql语句
下面是Sql Server 和 Access 操作数据库结构的常用Sql,希望对你有所帮助. 新建表: create table [表名] ( [自动编号字段] int IDENTITY (1,1) ...
- SQL SERVER 系列(7)数据表排序和聚集函数
SQL SERVER 系列(6)数据表排序和聚集函数 数据表排序: 当我们在对数据库操作的时候,我们经常会遇到对年龄,对考试成绩进行排序的问题,排序可以使我们对所要显示的数据一目了然,因此排序就成为了 ...
- SQL Server系统数据库– msdb数据库
介绍 (Introduction) This article is the third I am writing about Microsoft SQL system databases. 本文是我正 ...
- SQL Server系统数据库–模型数据库
介绍 (Introduction) This is my fourth article about SQL Server system databases. In previous articles ...
最新文章
- 前端基础---HTML
- [bzoj2301][HAOI2011]Problem b
- spring-boot-starter-parent 作用
- 随想:如果手机与手机之间具备了无线电测距测向功能
- *args 和**kwargs 的理解以及 函数的参数的总结
- 使用Dockerfile部署vue项目
- linux cpu核数和线程数,cpu个数、核数和线程的理解
- 图论算法(一)--最短路径的DFS/BFS解法(JAVA )
- 【水果识别】基于matlab GUI阈值分类器草莓识别【含Matlab源码 653期】
- lisp绘制直齿圆柱齿轮_直齿圆柱齿轮的画法
- 服务器TPMC值计算
- js中最重要的是:原型对象 普通对象和函数对象 构造函数
- 身份证上传识别测试点
- Go reflect初探
- 戴尔服务器运行失败,dell戴尔服务器错误代码及解决方案2013版
- 实验2014062701:opencv对图像的点操作
- heroku常用命令示例(三)与AWS S3互动
- 树莓派用iPad做显示器
- 世界上最好的拍照手机,华为拍照的四种功能揭晓,拍出你想拍的
- 日语蔬菜水果相关词汇(2)
热门文章
- 学习笔记---取得枚举项的2种方法: Enum.GetValues()-Array.GetValue()和Enum.GetNames()-Enum.Parse()...
- C#减少图片文件大小和尺寸
- 云企业网的应用于功能详解
- Spring配置JDBC连接Orcale、MySql、sqlserver
- boost.asio包装类st_asio_wrapper开发教程(2014.5.23更新)(一)-----转
- Failed to load JavaHL Library(windows和mac)
- 概率图模型PGM——D map, I map, perfect map
- oracle 学习小结1
- electron仿百度网盘-UI搭建思路
- RDS for MySQL 5.7 备份恢复为本地实例