语法
--使用sql语句创建数据库和表
--语法
Create database databaseName
on primary--primary(相当于master)--在哪个文件组上创建数据库
(
name='逻辑名称_data', --当它不是一句可以独立执行的sql命令的时候,同时它是一个结构中的某一句。就需要添加逗号
size=初始大小, --数值不应该包含在''以内
fileGrowth=增长方式, --也不能添加''包含
Maxsize=最大容量, --
filename='' --最后一句不用添加逗号,扩展名:mdf(mainDataFile)
)
log on
(
name='逻辑名称_log', --当它不是一句可以独立执行的sql命令的时候,同时它是一个结构中的某一句。就需要添加逗号
size=初始大小, --数值不应该包含在''以内
fileGrowth=增长方式, --也不能添加''包含
Maxsize=最大容量, --
filename='' --最后一句不用添加逗号,扩展名:ldf(logDataFile)
)
实例
CREATE DATABASE TestSchool
ON PRIMARY --Primary 可以省略不写,默认的就是primary
(
name='TestSchool_Data', --logic name
size=3mb,
filegrowth=10%,
maxsize=100mb,
filename='D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\TestSchool_Data.mdf'
)
log on
(
name='TestSchool_log', --logic name
size=3mb,
filegrowth=10%,
--maxsize=100mb, --日志文件一般不限制最大容量
filename='D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\TestSchool_log.ldf'
)
Q&A
问题1:如果当前数据库是否已经存在
--还有--一种情况是,可能在创建数据库的时候,有可能该数据库已经存在了,所以需要判断一下是否已存在
--首先利用系统数据库master,判断该数据库是否已经存在了
use master --切换数据库
--先判断数据库是否已经存在,如果存在就先删除 EXISTS 就是判断()里面的语句是否有值,若有true,反之false
IF EXISTS(SELECT *FROM SYSDATABASES WHERE name='TestSchool')
DROP DATABASE TestSchool
GO
--自动创建文件夹,调用存储过程xp_cmdshell,让其帮助我们创建一个文件夹
execute XP_CMDSHELL 'MKDIR D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA'
问题2:xp_cmdshell不奏效
右击服务器,选择‘Facets’->server:选择Surface Area Configuraton
:::info
xp 是指对数据库的扩展方法Extension
sp 是指数据库系统自身已经存在的方法,system
:::
问题3:接下来面临的问题,客户端若要创建数据库,他是没有办法进行配置的,这里就需要调用数据库系统自身的sp_confifure
--接下来面临的问题,客户端若要创建数据库,他是没有办法进行配置的,这里就需要调用数据库系统自身的sp_confifure来调用配置
RECONFIGURE
EXECUTE sp_configure 'show advanced options',1
RECONFIGURE
EXECUTE SP_CONFIGURE 'XP_CMDSHELL',1
问题4:创建次数据文件
), --值得注意的是,这里只创建了一个数据库,我们还可以创建一个此数据文件 .ndf(记得先加逗号哦)
fileGroup useDe
(
name='TestSchool_Data1', --logic name
size=3mb,
filegrowth=10%,
maxsize=100mb,
filename='D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\TestSchool_Data.ndf' --可以放到另一个路径做备份
)
完整的代码
----使用sql语句创建数据库和表
----语法
--Create database databaseName
--on primary--primary(相当于master)--在哪个文件组上创建数据库
--(
-- name='逻辑名称_data', --当它不是一句可以独立执行的sql命令的时候,同时它是一个结构中的某一句。就需要添加逗号
-- size=初始大小, --数值不应该包含在''以内
-- fileGrowth=增长方式, --也不能添加''包含
-- Maxsize=最大容量, --
-- filename='' --最后一句不用添加逗号,扩展名:mdf(mainDataFile)
--)
--log on
--(
-- name='逻辑名称_log', --当它不是一句可以独立执行的sql命令的时候,同时它是一个结构中的某一句。就需要添加逗号
-- size=初始大小, --数值不应该包含在''以内
-- fileGrowth=增长方式, --也不能添加''包含
-- Maxsize=最大容量, --
-- filename='' --最后一句不用添加逗号,扩展名:ldf(logDataFile)
--)
--还有一种情况是,可能在创建数据库的时候,有可能该数据库已经存在了,所以需要判断一下是否已存在
--首先利用系统数据库master,判断该数据库是否已经存在了
use master --切换数据库
--先判断数据库是否已经存在,如果存在就先删除 EXISTS 就是判断()里面的语句是否有值,若有true,反之false
IF EXISTS(SELECT *FROM SYSDATABASES WHERE name='TestSchool')
DROP DATABASE TestSchool
GO
--自动创建文件夹,调用存储过程xp_cmdshell,让其帮助我们创建一个文件夹
execute XP_CMDSHELL 'MKDIR D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA'
--接下来面临的问题,客户端若要创建数据库,他是没有办法进行配置的,这里就需要调用数据库系统自身的sp_confifure来调用配置
RECONFIGURE
EXECUTE sp_configure 'show advanced options',1
RECONFIGURE
EXECUTE SP_CONFIGURE 'XP_CMDSHELL',1
CREATE DATABASE TestSchool
ON PRIMARY --Primary 可以省略不写,默认的就是primary
(
name='TestSchool_Data', --logic name
size=3mb,
filegrowth=10%,
maxsize=100mb,
filename='D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\TestSchool_Data.mdf'
), --值得注意的是,这里只创建了一个数据库,我们还可以创建一个此数据文件 .ndf(记得先加逗号哦)
fileGroup useDe
(
name='TestSchool_Data1', --logic name
size=3mb,
filegrowth=10%,
maxsize=100mb,
filename='D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\TestSchool_Data.ndf' --可以放到另一个路径做备份
)
log on
(
name='TestSchool_log', --logic name
size=3mb,
filegrowth=10%,
--maxsize=100mb, --日志文件一般不限制最大容量
filename='D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\TestSchool_log.ldf'
)