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. Git Pull 错误

    当是用TortoiseGit 从多个源 Pull过数据后, 不能再使用默认的 Remote origin选项进行Pull操作. 每个工程 Commit\Push前需要Pull操作时, 采用独立的URL ...

  2. 伪类before和after

     以你添加的元素为基础!在他的里面!也就是他的内容的前面或者后面添加东西!  如果原来的元素没有内容会出现什么情况?(伪类的宽和高和元素的相等)

  3. unity3D脚本中,update ,fixupdate 和lateupdate的区别

    1.MonoBehaviour.Update 更新 当MonoBehaviour启用时,其Update在每一帧被调用. 2.MonoBehaviour.FixedUpdate 固定更新 当MonoBe ...

  4. 区间DP LightOJ 1422 Halloween Costumes

    http://lightoj.com/volume_showproblem.php?problem=1422 做的第一道区间DP的题目,试水. 参考解题报告: http://www.cnblogs.c ...

  5. PNG-8和PNG-24的抉择

    今天我做了一个图,因为需要透明,所以我存为了PNG8格式,结果发现图片变了,图片变得四周都不光滑了,四周都变得有锯齿了,而且阴影也不见了,后来存为PNG24,这些问题就消失了.我去百度搜索了关于PNG ...

  6. ssh简化后之事务管理

    为了能让大家更好的了解,所以今天跟大家分享整个项目.ps:ssh环境的搭建我就不一一讲解了,请大家参考 http://www.cnblogs.com/zczc1996/p/5842367.html. ...

  7. 解决Ionic的ion-slide-box 2条数据渲染问题

    当slider数据列表是动态获取时,如果数据结果只有2条数据时,slider列表会多复制俩个,通过下面的slideChange方法做个判断可以解决这个bug 第一步:添加slideChande方法 & ...

  8. Android使用Application的好处

    如果一个应用程序有2个入口的,1个入口程序打开修改其中的内容,怎么实现另一个入口的数据也修改呢? 下面就用到Application来实现数据的共享,因为一个应用程序只有一个Application,Ap ...

  9. canvas生成图片并保存到本地文件夹主要代码

    js var url = canvas.toDataURL();//把canvas中的图片变成data:image C# string filepath = ""; string ...

  10. 微软开源 WCF 分布式服务框架,并入 .NET 基金会项目

    微软北京时间2015.5.20 在其 .NET Foundation GitHub 开源项目页中开放了 WCF 分布式服务框架的代码.WCF突然之间成为一个热门话题,在各大网站上都有不同的报道:dot ...