SQL Server创建数据库的方法

发布时间:2021-07-14 16:02:19 作者:chen
来源:亿速云 阅读:816
# SQL Server创建数据库的方法

## 1. 前言

Microsoft SQL Server 是微软公司开发的关系型数据库管理系统(RDBMS),广泛应用于企业级数据管理。创建数据库是使用 SQL Server 的第一步,也是数据库管理的基础操作。本文将详细介绍在 SQL Server 中创建数据库的多种方法,包括使用图形界面(SSMS)、T-SQL 语句以及 PowerShell 脚本等方式。

## 2. 准备工作

在开始创建数据库之前,需要确保:

1. 已安装 SQL Server(任何受支持的版本)
2. 已安装 SQL Server Management Studio (SSMS)
3. 拥有足够的系统权限(通常需要 sysadmin 或 dbcreator 服务器角色)

## 3. 使用 SQL Server Management Studio (SSMS) 创建数据库

### 3.1 通过图形界面创建

1. **连接服务器**
   - 打开 SSMS
   - 在"连接到服务器"对话框中输入服务器名称和身份验证信息
   - 点击"连接"

2. **启动创建向导**
   - 在对象资源管理器中,右键点击"数据库"文件夹
   - 选择"新建数据库"

3. **配置数据库选项**
   ```plaintext
   - 常规页:
     * 数据库名称:输入有意义的名称(如 SalesDB)
     * 所有者:默认为当前用户,可点击"..."按钮更改
     * 使用全文索引:根据需要勾选
   
   - 文件页:
     * 数据文件:设置初始大小、自动增长等参数
     * 日志文件:同样配置大小和增长参数
   
   - 选项页:
     * 恢复模式:完整/简单/大容量日志
     * 兼容性级别:选择SQL Server版本
     * 其他高级选项
  1. 完成创建
    • 点击”确定”按钮
    • 在对象资源管理器中刷新即可看到新建的数据库

3.2 使用数据库模板

对于需要频繁创建相似结构的数据库: 1. 创建第一个数据库后,右键选择”脚本数据库为” → “CREATE到” → “新查询编辑器窗口” 2. 保存此脚本作为模板 3. 下次创建时修改相应参数即可

4. 使用 T-SQL 创建数据库

4.1 基本 CREATE DATABASE 语法

CREATE DATABASE database_name
[ ON 
  [ PRIMARY ] <filespec> [ ,...n ]
  [ , <filegroup> [ ,...n ] ]
]
[ LOG ON <filespec> [ ,...n ] ]
[ COLLATE collation_name ]
[ WITH <option> [ ,...n ] ]

4.2 简单创建示例

-- 最简单的创建语句
CREATE DATABASE TestDB;

4.3 完整参数示例

CREATE DATABASE InventoryDB
ON PRIMARY 
(
    NAME = 'InventoryDB_Data',
    FILENAME = 'C:\SQLData\InventoryDB.mdf',
    SIZE = 50MB,
    MAXSIZE = 500MB,
    FILEGROWTH = 25MB
)
LOG ON
(
    NAME = 'InventoryDB_Log',
    FILENAME = 'C:\SQLLogs\InventoryDB.ldf',
    SIZE = 25MB,
    MAXSIZE = 250MB,
    FILEGROWTH = 10MB
)
COLLATE SQL_Latin1_General_CP1_CI_AS
WITH 
    DB_CHNING OFF,
    TRUSTWORTHY OFF;

4.4 创建包含文件组的数据库

CREATE DATABASE SalesDB
ON PRIMARY 
(
    NAME = 'SalesDB_Primary',
    FILENAME = 'D:\Data\SalesDB_Prm.mdf',
    SIZE = 100MB,
    MAXSIZE = 1GB,
    FILEGROWTH = 50MB
),
FILEGROUP SalesData
(
    NAME = 'SalesDB_Data1',
    FILENAME = 'D:\Data\SalesDB_1.ndf',
    SIZE = 200MB,
    MAXSIZE = 2GB,
    FILEGROWTH = 100MB
),
(
    NAME = 'SalesDB_Data2',
    FILENAME = 'E:\Data\SalesDB_2.ndf',
    SIZE = 200MB,
    MAXSIZE = 2GB,
    FILEGROWTH = 100MB
)
LOG ON
(
    NAME = 'SalesDB_Log',
    FILENAME = 'F:\Logs\SalesDB.ldf',
    SIZE = 100MB,
    MAXSIZE = 1GB,
    FILEGROWTH = 10%
);

5. 高级创建选项

5.1 包含数据库

CREATE DATABASE ContainedDB
WITH CONTNMENT = PARTIAL;

5.2 内存优化文件组

CREATE DATABASE InMemoryDB
ON PRIMARY 
(
    NAME = 'InMemoryDB_Data',
    FILENAME = 'C:\Data\InMemoryDB.mdf'
),
FILEGROUP InMemoryDB_FG CONTNS MEMORY_OPTIMIZED_DATA
(
    NAME = 'InMemoryDB_FG',
    FILENAME = 'C:\Data\InMemoryDB_FG'
)
LOG ON
(
    NAME = 'InMemoryDB_Log',
    FILENAME = 'C:\Logs\InMemoryDB.ldf'
);

5.3 使用 Service Broker 选项

CREATE DATABASE BrokerDB
WITH ENABLE_BROKER;

6. 使用 PowerShell 创建数据库

6.1 基本方法

Import-Module SqlServer

$sql = "CREATE DATABASE PowerShellDB"
Invoke-Sqlcmd -Query $sql -ServerInstance "YourServerName"

6.2 带参数的创建

$dbName = "PSDB"
$dataPath = "C:\SQLData\"
$logPath = "C:\SQLLogs\"

$query = @"
CREATE DATABASE [$dbName] ON PRIMARY 
(
    NAME = N'${dbName}_Data',
    FILENAME = N'${dataPath}${dbName}.mdf',
    SIZE = 50MB,
    MAXSIZE = UNLIMITED,
    FILEGROWTH = 10MB
)
LOG ON 
(
    NAME = N'${dbName}_Log',
    FILENAME = N'${logPath}${dbName}_Log.ldf',
    SIZE = 25MB,
    MAXSIZE = 1GB,
    FILEGROWTH = 10%
)
"@

Invoke-Sqlcmd -Query $query -ServerInstance "YourServerName"

7. 创建数据库的最佳实践

7.1 命名规范

7.2 文件布局

7.3 自动增长设置

7.4 安全考虑

8. 创建后的配置

8.1 设置数据库选项

ALTER DATABASE YourDB SET 
    RECOVERY FULL,
    PAGE_VERIFY CHECKSUM,
    AUTO_UPDATE_STATISTICS ON;

8.2 创建架构和用户

USE YourDB
GO

CREATE SCHEMA Sales AUTHORIZATION dbo;
GO

CREATE USER AppUser FOR LOGIN AppLogin;
GO

GRANT SELECT, INSERT, UPDATE ON SCHEMA::Sales TO AppUser;
GO

9. 常见问题解决

9.1 权限不足

错误:CREATE DATABASE permission denied in database ‘master’ 解决:使用具有足够权限的账户或请求管理员授予dbcreator角色

9.2 磁盘空间不足

错误:Could not allocate space for database 解决:清理磁盘空间或指定其他有足够空间的路径

9.3 名称冲突

错误:Database ‘YourDB’ already exists 解决:选择其他名称或先删除现有数据库

9.4 文件路径无效

错误:The path specified is invalid 解决:确保路径存在且SQL Server服务账户有写入权限

10. 自动化数据库创建

10.1 使用脚本模板

将常用创建脚本保存为模板文件,使用时修改参数

10.2 使用SQLCMD变量

:setvar dbname "ProdDB"
:setvar datapath "E:\SQLData\"

CREATE DATABASE $(dbname) ON PRIMARY 
(
    NAME = N'$(dbname)_Data',
    FILENAME = N'$(datapath)$(dbname).mdf'
)
LOG ON 
(
    NAME = N'$(dbname)_Log',
    FILENAME = N'$(datapath)$(dbname)_Log.ldf'
)
GO

10.3 使用部署工具

11. 结论

在SQL Server中创建数据库是数据库管理的基本操作,掌握多种创建方法可以适应不同的工作场景。无论是简单的图形界面操作,还是复杂的T-SQL脚本,或是自动化的PowerShell方法,都应该根据实际需求选择最合适的方式。遵循最佳实践可以确保创建的数据库具有良好的性能和可维护性。

12. 附录

A. 常用系统存储过程

B. 相关系统视图

C. 推荐资源

”`

推荐阅读:
  1. SQL Server的详细介绍
  2. 创建SQL用户与删除SQL用户

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

sqlserver 数据库 sql

上一篇:PHP中怎么使用curl_setopt()函数抓取网页

下一篇:php中array_slice和array_splice函数如何使用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》