本文引用自:http://www.cnblogs.com/seerlin/archive/2009/02/05/1384901.html

 1 
  2--1,创建登录,可以有两种方式:
  3--(1)以SQL验证的方式新建一个新的登录:
  4    exec sp_addlogin 'allnen','all123'--创建登录,登录名和密码
  5
  6--(2)以windows验证的方式将windows中的某个用户授予登录数据库服务的权限:
  7    exec sp_grantlogin 'PC-200901051757\allnen'
  8--或者
  9    --create login [PC-200901051757\allnen] from windows
 10
 11--如果要删除某个登录,可以用如下方式:
 12    --drop login [PC-200901051757\allnen] 
 13
 14--2,现在就可以用allnen这个帐号登录,但这里先不要登录,我们先给这个帐号授予创建数据库和表的权限
 15
 16    exec sp_grantdbaccess @loginame='allnen',@name_in_db='allnenDbUser'--将登录名映射到当前数据库
 17
 18    --exec sp_revokedbaccess 'allnen'--从当前数据库中删除对应的登录用户映射,也就是去除某个用户访问此数据库的权限
 19
 20    grant create database,create table to allnen--授予当前用户创建数据库的权限
 21--如果要去除某个用户的权限,用revoke,如果要拒绝某个用户的相关权限,用deny,revoke和deny的区别,请查阅其他相关文章
 22    --deny create database to allnenDbUser
 23
 24--3,现在就可以用allnen这个帐号登录,然后创建数据库和表了
 25--有时候如果要创建的数据库已经存在 ,那创建数据库的时候就会出错,
 26--所以我们一般在创建数据库前都会先判断要创建的数据库是否已经存在,
 27--如果存在,就先将存在的数据库删除
 28    IF EXISTS(SELECT * FROM sysdatabases WHERE name='stuDB')
 29        drop database stuDB
 30    GO
 31--当然,也可以用db_id(数据库名)这个函数来判断
 32
 33--创建数据库的时候,有可能数据库文件已经存在,或者文件目录不存在等,所以,我们还要先在硬盘中创建对应的文件夹
 34
 35    exec sp_configure 'show advanced options', 1--显示高级选项,然后才可以配置xp_cmdshell
 36    reconfigure--从新应用配置,让配置生效
 37    exec sp_configure 'xp_cmdshell',1--启用xp_cmdshell功能
 38    reconfigure
 39    exec xp_cmdshell 'mkdir D:\project\'--用xp_cmdshell创建目录
 40    GO
 41--开始创建数据库
 42    CREATE DATABASE stuDB
 43       ON  PRIMARY  --默认就属于PRIMARY主文件组,可省略
 44    (
 45     NAME='stuDB_data',  --主数据文件的逻辑名
 46     FILENAME='D:\project\stuDB_data.mdf',  --主数据文件的物理名
 47     SIZE=5mb,  --主数据文件初始大小
 48     MAXSIZE=100mb,  --主数据文件增长的最大值
 49     FILEGROWTH=15%   --主数据文件的增长率
 50    )
 51    LOG ON
 52    (
 53      NAME='stuDB_log',
 54      FILENAME='D:\project\stuDB_log.ldf',
 55      SIZE=2mb,
 56      FILEGROWTH=1MB
 57    )
 58    GO 
 59--如果要创建多个数据库文件或者多个日志文件,则可以用这样的方式
 60    CREATE  DATABASE  employees
 61      ON 
 62       (
 63       /**//*-主数据文件的具体描述-*/
 64       NAME = 'employee1', 
 65       FILENAME = 'D:\project\employee1_Data.mdf' , 
 66       SIZE = 10, 
 67       FILEGROWTH = 10%
 68      ), 
 69      (
 70       /**//*-次要数据文件的具体描述-*/
 71       NAME = 'employee2', 
 72       FILENAME = 'D:\project\employee2_Data.ndf' , 
 73       SIZE = 20, 
 74       MAXSIZE = 100, 
 75       FILEGROWTH = 1
 76      ) 
 77     LOG ON 
 78      (
 79       /**//*-日志文件1的具体描述-*/
 80       NAME = 'employeelog1', 
 81       FILENAME = 'D:\project\employeelog1_Log.ldf' , 
 82       SIZE = 10, 
 83       FILEGROWTH = 1
 84       ), 
 85      (
 86       /**//*-日志文件2的具体描述-*/
 87       NAME = 'employeelog2', 
 88       FILENAME = 'D:\project\employeelog2_Log.ldf' , 
 89       SIZE = 10, 
 90       MAXSIZE = 50, 
 91       FILEGROWTH = 1
 92      )
 93    GO 
 94
 95
 96--
 97
 98--4,创建完数据库后,我们就可以开始创建表了
 99    USE stuDB   --将当前数据库设置为stuDB 
100    GO
101--同样,在创建表的时候,表也有可能已经存在,所以我们要先将已存在的表删除
102    IF EXISTS(SELECT * FROM sysobjects  WHERE name='stuInfo')
103        drop table stuInfo
104    GO
105    CREATE  TABLE  stuInfo    /**//*-创建学员信息表-*/
106    (
107     stuName  VARCHAR(20)  NOT  NULL ,  --姓名,非空(必填)
108     stuNo   CHAR(6)  NOT  NULL,   --学号,非空(必填)
109     stuAge  INT  NOT  NULL,  --年龄,INT类型默认为4个字节
110     stuID  NUMERIC(18,0),     --身份证号
111     stuSeat   SMALLINT  IDENTITY (1,1),   --座位号,自动编号
112     stuAddress   TEXT   --住址,允许为空,即可选输入
113    ) 
114    GO
115
116    IF EXISTS(SELECT * FROM sysobjects WHERE name='scoreInfo')
117        DROP TABLE scoreInfo
118    GO
119    CREATE TABLE scoreInfo
120    (
121        scoreInfoId int identity(1,1) primary key,
122        score int,
123        stuNo CHAR(6)
124    )
125    GO
126
127--5,创建完表之后,要做的事情就算给表建立约束
128    alter table stuInfo
129        add constraint PK_stuNo primary key(stuNo)--主键约束
130    go
131    alter table stuInfo
132        add constraint UQ_stuID unique(stuID)--唯一约束
133    go
134    alter table stuInfo
135        add constraint DF_stuAddress default('地址不详') for stuAddress--默认约束
136    go
137    alter table stuInfo
138        add constraint CK_stuAge check(stuAge >20 and stuAge<40)--检查约束
139    go
140    alter table scoreInfo
141        add constraint FK_stuNo foreign key(stuNo) references stuInfo(stuNo) --外键约束
142    go
143

1 --1,用管理员登录
 2 --2,用管理员创建新数据库
 3 --3,用管理员创建新登录
 4 --4,授权新登录名访问新数据库的权限
 5 use master
 6 go
 7 exec sp_configure 'show advanced options',1
 8 reconfigure
 9 exec sp_configure 'xp_cmdshell',1
10 reconfigure
11 exec xp_cmdshell 'mkdir d:\Data\'
12 
13 
14 if exists(select * from sysdatabases where name='StuDb')
15 drop database StuDb
16 create database StuDb on primary 
17 (
18     name='StuDb',
19     filename='D:\Data\StuDb.mdf',
20     size=5MB,
21     filegrowth=15%
22 )
23 log on
24 (
25     name='StuDb_log',
26     filename='D:\Data\StuDb.ldf',
27     size=3MB,
28     maxsize=10MB,
29     filegrowth=10%
30 )
31 go
32 use StuDb
33 go
34 if exists(select *from sysobjects where name='StuInfo')
35     drop table StuInfo
36 go
37 create table StuInfo(
38     StuNo int identity(1,1),
39     StuName nvarchar(10)
40 )
41 go
42 if exists(select *from sysobjects where name='ScoreInfo')
43     drop table ScoreInfo
44 go
45 create table ScoreInfo(
46     ScoreInfoId int identity(1,1),
47     ExamScore float,
48     LabScore float,
49     StuNo int
50 )
51 --删除约束
52 alter table ScoreInfo
53     drop constraint CK_ExamScore,CK_LabScore
54 go
55 alter table ScoreInfo
56     alter column ExamScore numeric(5,2)
57 alter table ScoreInfo
58     alter column LabScore numeric(5,2)
59 go
60 --约束
61 alter table StuInfo
62     add constraint PK_StuNo primary key(StuNo)
63 alter table ScoreInfo
64     add constraint CK_ExamScore check(ExamScore>0 and ExamScore<100)
65 alter table ScoreInfo
66     add constraint CK_LabScore check(LabScore>0 and LabScore<100)
67 alter table ScoreInfo
68     add constraint FK_StuNo foreign key(StuNo) references StuInfo(StuNo)
69 go
70 
71 --授权windows用户访问数据库
72 
73     exec sp_grantlogin 'lab-04\administrator'--即将过期的方式
74     create login [lab-04\administrator] from windows----推荐方式
75 
76 drop login [lab-04\administrator]--删除登录
77 
78 create login t0811 with password='t0811'--创建新sql登录
79 
80 --创建新数据库用户,以前用sp_grantdbaccess,以后用
81 use StuDb
82 go
83 create user t0811InStuDb for login t0811
84 --授权访问表
85 grant select,delete,update,insert on StuInfo to t0811InStuDb
86 --取消权限
87 revoke delete on StuInfo to t0811InStuDb
88 --将t0811这个登录加入到sysadmin这个服务器级别角色中
89 --exec sp_addsrvrolemember 't0811','sysadmin'
90 
91 --将t0811InStuDb这个数据库用户加入到db_owner这个数据库级别角色中
92 exec sp_addrolemember 't0811InStuDb','db_owner'
93 --拒绝某个用户的某个权限
94 deny delete on StuInfo to t0811InStuDb
95 
96

转载于:https://www.cnblogs.com/johnsmith/archive/2011/09/05/2167504.html

mssql的T-SQL教程(从建登陆到建库、表和约束)相关推荐

  1. MySQL默认库可以删_个人总结:Sql(一:创建删除修改库表||附:mysql数据类型及默认值)...

    个人总结:Sql(一:创建&删除&修改库&表||附:mysql数据类型及默认值)createdatabasecreate tablealterdatabasealtertabl ...

  2. MS-SQL Server 基础类 - SQL语句

      网址收藏夹 免费申请! 首页 |收藏夹 | 笑话 | 贴吧 | 交友 | 留言 | 软件 | 超市 | 网页特效 | 酷站导航 | 论坛 新闻 | 同学录 | 图片 | 跑商 | 动画 | 音乐 ...

  3. SQL语法精讲(包括建库、建表、建视图、查询、增加、删除、修改)

    SQL语法精讲(包括建库.建表.建视图.查询.增加.删除.修改) SQL分类: DDL-数据定义语言(CREATE,ALTER,DROP,DECLARE) DML-数据操纵语言(SELECT,DELE ...

  4. PL/SQL教程:PL/SQL Developer使用技巧

    1.PL/SQL Developer记住登陆密码 在使用PL/SQL Developer时,为了工作方便希望PL/SQL Developer记住登录Oracle的用户名和密码: 设置方法:tools- ...

  5. SQL教程——存储过程

    本教程中所使用的数据库的建表语句都在"SQL教程--索引"这篇文章中,点击链接直达:索引&建表语句 摘要:本文主要介绍SQL语法的存储过程 目录 存储过程和函数 存储过程 ...

  6. SQL教程——分支结构

    本教程中所使用的数据库的建表语句都在"SQL教程--索引"这篇文章中,点击链接直达:索引&建表语句 摘要:本文主要介绍SQL语法的流程控制结构 目录 流程控制结构 分支结构 ...

  7. SQL教程——where语法

    本教程中所使用的数据库的建表语句都在"SQL教程--索引"这篇文章中,点击链接直达:索引&建表语句 摘要:本文主要SQL语句中where的语法和使用 where (1).按 ...

  8. SQL教程——select语法

    本教程中所使用的数据库的建表语句都在"SQL教程--索引"这篇文章中,点击链接直达:索引&建表语句 摘要:本文主要通过一些示例来展示数据库最基础的查询语法--select的 ...

  9. SQL教程——分页查询

    本教程中所使用的数据库的建表语句都在"SQL教程--索引"这篇文章中,点击链接直达:索引&建表语句 摘要:本文主要介绍SQL的子查询分页 分页查询 应用场景:当要显示的数据 ...

最新文章

  1. 【目录】 软件测试全栈需要学习什么? 软件测试的各个阶段 ,软件测试学习路径,软件测试方向选择,软件测试的薪资待遇。...
  2. 中文转unicode,中文转bytes,unicode转bytes java实现
  3. STM32PB2(BOOT1)使用注意
  4. 带桭字的名字_男孩带官运大气的名字有气魄有能力-可爱点
  5. python中list 和array的区别
  6. mysql 类似plsql 软件_推荐一款PG数据库管理工具——pgadmin,一款类似PLSQL的工具...
  7. python从入门到放弃表情图-[python从入门到放弃]基于百度OCR的文字识别
  8. star法则java简历_在简历中使用STAR法则
  9. 物联网开发笔记(29)- 使用Micropython开发ESP32开发板之控制240x240的oled屏幕显示动态图片GIF(ST7789芯片)
  10. ansys经典界面分析工字钢_ANSYS经典界面讲解.ppt
  11. SharePoint 网站登录不上,3次输入用户名/密码白页
  12. 远程桌面系统管理员以限制你登入计算机,windows远程连接时:系统管理员已经限制你可以使用的登录类型(网络或交互式)解决办法...
  13. 国际象棋测试软件只能支持8核,国际象棋测试超线程对性能的影响,多线程多开真的强大吗?(晒T恤)【硬件玩家】...
  14. google translate for goldendict 谷歌 翻译 goldendict
  15. 基于微信实现H5扫一扫功能详细过程
  16. iphonex适配游戏_iPhoneX王者荣耀适配问题 iPhoneX游戏问题详解
  17. 洛谷刷题记录(python)【入门6】函数与结构体
  18. 安卓4.4pppoe拨号间隔及轮次修改
  19. ppt纯文字设计的几种玩法(词云、文字云)
  20. 动态页面静态化之页面静态化方案

热门文章

  1. 动网论坛Ver 7.1.0 Sp1
  2. 深度学习笔记三:Softmax Regression
  3. 【Deep Learning】Tensorflow实现逻辑回归
  4. 您如何查看MySQL用户权限
  5. js const 和 var 的区别
  6. Python 技术篇-windows服务器flask服务的启用与使用实例演示
  7. Windows 技术篇-网卡物理(MAC)地址查看方法
  8. Windows 技术篇-是否允许程序连接网络误操作解除方法,如何解除阻止程序连接网络,程序连接网络设置方法
  9. fitype拟合多参数函数和遗传算法拟合多参数函数
  10. 【upc 9541 矩阵乘法】非正解