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
GO CREATE 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 57 EXEC 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系列:数据库操作的更多相关文章

  1. SQL Server远程数据库操作(备份、还原等)

    · SQL Server远程数据库备份到本地: exp sauser/sapassword@192.168.8.233:1433/DBName file=d:/backup.dmp OWNER=sum ...

  2. SQL SERVER C#数据库操作类(连接、执行SQL)

    using System; using System.Collections; using System.Collections.Specialized; using System.Data; usi ...

  3. ADO.NET操作SQL Server:数据库操作类(已封装)

    1.增.删.改通用方法 /// <summary> /// 增.删.改通用方法 /// </summary> /// <param name="commandT ...

  4. ADO.NET操作SQL Server:数据库操作类(未封装)

    1.添加数据 /// <summary> /// 添加数据 /// </summary> /// <param name="newEntity"> ...

  5. [C#对sql操作]C#对sql server 2008数据库操作

    using System.Data; using System.Data.SqlClient SqlConnection conn = new SqlConnection(System.Configu ...

  6. Sql Server系列:数据库组成及系统数据库

    1. 数据库组成 数据库的存储结构分为逻辑存储结构和物理存储结构. ◊ 逻辑存储结构:说明数据库是由哪些性质的信息所组成.SQL Server的数据库不仅仅只是数据的存储,所有与数据处理操作相关的信息 ...

  7. 微软ASP.NET网站部署指南(2):部署SQL Server Compact数据库

    1. 综述 对于数据库訪问,Contoso University程序要求以下的软件必须随程序一起部署.由于不属于.NET Framework: SQL Server Compact (数据库引擎) A ...

  8. Sql Server系列:触发器

    触发器的一些常见用途: ◊ 强制参照完整性 ◊ 常见审计跟踪(Audit Trails):这意味着写出的记录不仅跟踪大多数当前的数据,还包括对每个记录进行实际修改的历史数据. ◊ 创建与CHECK约束 ...

  9. 如何转换SQL Server 2008数据库到SQL Server 2005

        背景介绍: 公司一套系统使用的是SQL SERVER 2008数据库,突然一天收到邮件,需要将这套系统部署到各个不同地方(海外)的工厂,需要在各个工厂部署该数据库,等我将准备工作做好,整理文档 ...

  10. SQL Server附加数据库出现错误5123的正确解决方法

    因为自己有一本基于SQL Server 2005的数据库教程,里边使用的示例数据库是AdventureWorks for SQL Server 2005,而我的机子上装的是SQL Server 200 ...

随机推荐

  1. Sqoop2中传入配置文件中url之【坑】

    [特别注意]Sqoop2里面各个版本的区别还是很大的,这里使用1.99.6版本. sqoop2的url等信息放到properties配置文件中,配置文件解析出来传给SqoopClient报错. Sqo ...

  2. 【原】iOS学习之Xcode8关于控制台不打印错误信息

    前几天将我的Xcode升到了8,但是在运行程序时,会打印很多没有用的信息,如下图: Xcode8运行程序时打印的乱码 于是各种寻求答案,找到如下答案: Edit Scheme-> Run -&g ...

  3. 原生js实现查询天气的小应用

    demo:https://zsqosos.github.io/weather/ 截图: 实现功能:打开网页时显示用户所在城市的天气状况,在输入框输入城市可查询其它城市. 实现过程:先调用百度地图的AP ...

  4. 0_MVC+EF+Autofac(dbfirst)轻型项目框架_基本框架

    前言 原来一直使用他人的开源项目框架,异常的定位会很麻烦,甚至不知道这个异常来自我的代码还是这个框架本身.他人的框架有一定的制约性,也有可能是我对那些框架并没深入了解,因为这些开源框架在网上也很难找到 ...

  5. tornado 学习笔记17 HTTPServerRequest分析

         代表Http请求.      所有的属性都是字符串型. 17.1 属性 (1) method:请求方法类型,比如"GET"."POST" (2) ur ...

  6. SpringMVC4零配置--web.xml

    servlet3.0+规范后,允许servlet,filter,listener不必声明在web.xml中,而是以硬编码的方式存在,实现容器的零配置. ServletContainerInitiali ...

  7. TLV(类型—长度—值)格式及编码

    转自: http://www.cnblogs.com/tml839720759/archive/2014/07/13/3841820.html 引子: 前段时间在项目中第一次接触TLV,项目中用这种格 ...

  8. CentOS 安装 gcc-c++

    由于网络环境的问题,很难在线安装,可以 直接挂载安装盘文件,然后在Pacakage 中进行本地安装

  9. 异步网络加载开源框架AsyncHttpClient使用

    AsyncHttpClient是异步的,但是有时候我们需要得到请求的结果集来返回给某个函数,由于是异步的,所以不能够直接return会去,所以可以定义一个interface来给调用AsyncHttpC ...

  10. Code First开发系列实战之使用EF搭建小型博客平台

    返回<8天掌握EF的Code First开发>总目录 本篇目录 理解应用需求 数据库设计 创建实体数据模型 创建实体类 创建关系和导航属性 实现DbContext类 执行数据访问 理解仓储 ...