1.在创建数据库时,有一个比较常见的问题,
if exists(select name from sysdatabases where name=‘mydb‘)
drop database mydb
go
create databASE mydb on primary
(
name=‘mydb_dat‘, --逻辑名称
filename=‘e:\db\mydb.mdf‘, --物理名称
size=5Mb, --最小值
maxsize=20mb, --最大值
filegrowth=10% --2mb
)log on
(
name=‘mydb_log_dat‘, --逻辑名称
filename=‘f:\db\mydb_log.ldf‘, --物理名称
size=2Mb, --最小值
maxsize=5mb, --最大值
filegrowth=1mb
)
go
消息 5133,级别 16,状态 1,第 1 行
对文件 "e:\db\mydb.mdf" 的目录查找失败,出现操作系统错误 2(系统找不到指定的文件。)。
消息 1802,级别 16,状态 1,第 1 行
CREATE DATABASE 失败。无法创建列出的某些文件名。请查看相关错误。
这是很多自学者容易出现的问题,与java和其他编程语言的影响,创建数据库的时候,系统不会主动创建目录 e:\db,f:\db
首先应该检查你是否存在这个目录,如果不存在先创建这个目录,就ok了;还有可能是对e,f盘没有修改的权限,
在盘符处右键-->安全-->编辑(修改权限)-->勾选修改和写入等功能,再试下就可以了(我成功了)
在创建大型数据库时,尽量把主数据文件和事务日志文件存放在不同目录下,这样在数据库被损坏时
可以利用事务日志文件进行恢复,同时也可以提高数据读取的效率
问题2:
if exists(select name from sysobjects where name=‘postcode‘ and xtype=‘u‘)
drop table postcode
create table postcode
(
地区 nvarchar(20) primary key,
邮编 char(7) not null,
)
bulk insert postcode from‘f:/post.sql‘
select * from postcode
消息4860,级别16,状态1,第1 行
无法进行大容量加载。文件"f:/post.sql" 不存在。
找不到文件的原因,其实是文件的扩展名问题,打开f盘,
点击“组织”
将隐藏已知文件类型的扩展名勾掉,发现文件名变为了post.sql.txt,这才是真正的文件名,绝对路径写成“f:\post.sql.txt”就可以了