0%

数据库创建时指定位置的问题

本文主要对使用微软SSMS对SQL Serve管理时使用SQL脚本创建数据库时遇到的BUG进行记录,发现数据库文件位置的相关权限问题,在非系统盘创建文件夹作为数据库文件的存放位置即可解决该问题。同时记录SQL Serve和SSMS下载安装配置

软件下载安装配置

https://help.aliyun.com/document_detail/465370.html

问题描述

执行以下代码时报错:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
use master
go

if exists(select * from sysdatabases where name='test123')
begin
select '该数据库已存在'
drop database test123 --如果该数据库已经存在,那么就删除它
end
else
begin
create database test123
on primary --表示属于 primary 文件组
(
name='cpDB_data', -- 主数据文件的逻辑名称
filename='C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQL\MSSQL\DATA\cpDB_data.mdf', -- 主数据文件的物理名称
size=5mb, --主数据文件的初始大小
maxsize=100mb, -- 主数据文件增长的最大值
filegrowth=15% --主数据文件的增长率
)
log on
(
name='cpDB_log', -- 日志文件的逻辑名称
filename='C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQL\MSSQL\DATA\cpDB_log.ldf', -- 日志文件的物理名称
size=2mb, --日志文件的初始大小
maxsize=20mb, --日志文件增长的最大值
filegrowth=1mb --日志文件的增长率
)
end

报错如下:

1
消息 5133,级别 16,状态 1,第 11 行 对文件“C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQL\MSSQL\DATA\cpDB_data.mdf”的目录查找失败,出现操作系统错误 3(系统找不到指定的路径。)。 消息 1802,级别 16,状态 1,第 11 行 CREATE DATABASE 失败。无法创建列出的某些文件名。请查看相关错误

解决方法

在D盘中创建文件夹D:\1Project\test后更改代码如下即可解决:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
use master
go

if exists(select * from sysdatabases where name='test123')
begin
select '该数据库已存在'
drop database test123 --如果该数据库已经存在,那么就删除它
end
else
begin
create database test123
on primary --表示属于 primary 文件组
(
name='cpDB_data', -- 主数据文件的逻辑名称
filename='D:\1Project\test\cpDB_data.mdf', -- 主数据文件的物理名称
size=5mb, --主数据文件的初始大小
maxsize=100mb, -- 主数据文件增长的最大值
filegrowth=15% --主数据文件的增长率
)
log on
(
name='cpDB_log', -- 日志文件的逻辑名称
filename='D:\1Project\test\cpDB_log.ldf', -- 日志文件的物理名称
size=2mb, --日志文件的初始大小
maxsize=20mb, --日志文件增长的最大值
filegrowth=1mb --日志文件的增长率
)
end

SSMS附加功能可以管理数据库文件

对数据库右键选择附加选项即可。

image-20250227132352857

可以选择数据库文件位置

image-20250227132503276