语法

  1. --使用sql语句创建数据库和表
  2. --语法
  3. Create database databaseName
  4. on primary--primary(相当于master)--在哪个文件组上创建数据库
  5. (
  6. name='逻辑名称_data', --当它不是一句可以独立执行的sql命令的时候,同时它是一个结构中的某一句。就需要添加逗号
  7. size=初始大小, --数值不应该包含在''以内
  8. fileGrowth=增长方式, --也不能添加''包含
  9. Maxsize=最大容量, --
  10. filename='' --最后一句不用添加逗号,扩展名:mdf(mainDataFile)
  11. )
  12. log on
  13. (
  14. name='逻辑名称_log', --当它不是一句可以独立执行的sql命令的时候,同时它是一个结构中的某一句。就需要添加逗号
  15. size=初始大小, --数值不应该包含在''以内
  16. fileGrowth=增长方式, --也不能添加''包含
  17. Maxsize=最大容量, --
  18. filename='' --最后一句不用添加逗号,扩展名:ldf(logDataFile)
  19. )

实例

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'
)

图片.png

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

图片.png

:::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'
)