创建数据库,表,约束,权限
--------------创建文件夹---------------
--打开高级选项
exec sp_configure 'show advanced options',1
reconfigure--重启配置
--开启xp_cmdshell功能(开启后能使用dos命令)
exec sp_configure 'xp_cmdshell',1
reconfigure
--使用xp_cmdshell功能
exec xp_cmdshell 'md e:\my'
--注意:sp_开头是系统存储过程,xp_开头是扩展存储过程
-----------------创库----------------------
--判断MyDB数据库是否存在,如果存在就删除
--方法一
--if exists(select * from sysdatabases where name='MyDB')
--drop database MyDB
--方法二
if DB_ID('MyDB') is not null
drop database MyDB
--创建MyDB数据库
create database MyDB
on primary--主数据文件,on后面接的是文件组名称,可省略
(
name='MyDB',--主数据文件逻辑名
filename='e:\my\MyDB.mdf',--主数据文件物理名
size=3mb,--初始大小
maxsize=20mb,--最大值
filegrowth=2mb--增长率,可以用mb为单位,也可以用百分比(如:10%)
)
,
(--次数据文件
name='MyDB_ndf',
filename='e:\my\MyDB_ndf.ndf',
size=1mb,
maxsize=10mb,
filegrowth=2mb
)
log on--日志文件
(
name='MyDB_ldf',
filename='e:\my\MyDB_ldf.ldf',
size=1mb,
maxsize=10mb,
filegrowth=2mb
)
go
--------------创表---------------
use MyDB
--判断表是否存在
--方法一
--if exists(select * from sysobjects where name='stuinfo')
--drop table stuinfo
--方法二
if OBJECT_ID('stuinfo') is not null
drop table stuinfo
--创建表
create table stuinfo
(
stuNo int not null,
stuAge int not null
)
go
--添加列(注意:add后面不能加column)
alter table stuinfo
add stuName nvarchar(20) not null
alter table stuinfo
add stuSex nvarchar(2) not null
--删除列
alter table stuinfo
drop column stuName
create table stuscore
(
ID int identity(1,1),--标识列
stuNo int not null,
score float not null
)
---------------添加约束------------------
--主键约束
alter table stuinfo
add constraint PK_stuNo primary key(stuNo)
--默认约束
alter table stuinfo
add constraint DF_stuSex default('男') for stuSex
--唯一约束
alter table stuinfo
add constraint UQ_stuName unique(stuName)
--检查约束
alter table stuinfo
add constraint CK_stuAge check(stuAge>0 and stuAge<100)
--外键约束
alter table stuscore
add constraint FK_stuNo foreign key(stuNo) references stuinfo(stuNo)
--删除约束
alter table stuinfo
drop constraint UQ_stuName
------------------安全管理-------------------------
--1、创建登录名
--方法一:
create login T1346 with password='sasa'
--方法二:
exec sp_addlogin 'T1346','sasa'
--2、根据登录名创建用户
--注意:先要确定数据库(即给哪个数据库添加的用户)
use MyDB
--方法一:
create user T1346_user for login T1346
--方法二:
exec sp_grantdbaccess 'T1346','T1346_user'
--3、授权(分配权限)
--添加用户T1346_user对stuinfo表的操作权限,如果是对所有表都添加权限可以把on stuinfo去掉
grant select,insert on stuinfo to T1346_user
--收回权限
revoke insert on stuinfo to T1346_user
--revoke与deny的区别
--1、revoke收回权限后,还可以从父类角色中继承相应的权限
--2、deny在禁用权限后,不可以从父类角色中继承相应的权限