1:在sql语句中,临时表有两类,分别是局部(local)和全局(global)临时表,局部临时表只在其会话(事务)中可见,全局临时表可以被会话(事务)中的任何程序或者

模块访问

2:创建局部临时表

  1. use db_sqlserver
  2. go
  3. create table #db_local_table
  4. (
  5. id  int,
  6. name varchar(50),
  7. age int,
  8. area int
  9. )
use db_sqlserver
go
create table #db_local_table
(
id int,
name varchar(50),
age int,
area int
)

创建的临时表不能与其他会话共享,当会话结束时,行和表的定义都将被删除

3:创建全局临时表

  1. use db_sqlserver
  2. go
  3. create table ##db_local_table
  4. (
  5. id  int,
  6. name varchar(50),
  7. age int,
  8. area int
  9. )
use db_sqlserver
go
create table ##db_local_table
(
id int,
name varchar(50),
age int,
area int
)

全局临时表对所有用户都是可见的,在每个访问该表的用户都断开服务器连接时,全局临时表才会被删除

4:创建主键、外键关联的数据库表

  1. use db_sqlserver;
  2. go
  3. create table db_table5
  4. (
  5. 职工编号 int primary key,
  6. 职工号  varchar(50) unique,
  7. 仓库号  varchar(50),
  8. 工资   int
  9. )
  10. go
  11. create table db_table6
  12. (
  13. 订单编号 int primary key,
  14. 订单号  varchar(50) unique,
  15. 职工号 varchar(50) references db_table5(职工号),
  16. 订购日期 datetime,
  17. 销售金额 int
  18. )
use db_sqlserver;
go
create table db_table5
(
职工编号 int primary key,
职工号 varchar(50) unique,
仓库号 varchar(50),
工资 int
) go
create table db_table6
(
订单编号 int primary key,
订单号 varchar(50) unique,
职工号 varchar(50) references db_table5(职工号),
订购日期 datetime,
销售金额 int
)

5:创建具有check约束字段的数据库表

  1. use db_sqlserver;
  2. go
  3. create table db_table7
  4. (
  5. 仓库编号 int primary key,
  6. 职工号  varchar(50) unique,
  7. 仓库号  varchar(50),
  8. 工资   int,
  9. 面积  int check(面积>=600 and 面积<=1800)
  10. )
use db_sqlserver;
go
create table db_table7
(
仓库编号 int primary key,
职工号 varchar(50) unique,
仓库号 varchar(50),
工资 int,
面积 int check(面积>=600 and 面积<=1800)
)

6:创建含有计算字段的数据库表

  1. use db_sqlserver;
  2. go
  3. create table db_table8
  4. (
  5. 职工编号 int primary key,
  6. 职工号 varchar(50) unique,
  7. 仓库号 varchar(50),
  8. 基本工资 int check(基本工资>=800 and 基本工资<=2100),
  9. 加班工资 int,
  10. 奖金 int,
  11. 扣率 int,
  12. 应发工资 as (基本工资 + 加班工资 + 奖金 - 扣率)
  13. )
use db_sqlserver;
go
create table db_table8
(
职工编号 int primary key,
职工号 varchar(50) unique,
仓库号 varchar(50),
基本工资 int check(基本工资>=800 and 基本工资<=2100),
加班工资 int,
奖金 int,
扣率 int,
应发工资 as (基本工资 + 加班工资 + 奖金 - 扣率)
)

7:创建含有自动编号字段的数据库表

  1. use db_sqlserver;
  2. go
  3. create table db_table9
  4. (
  5. 仓库编号 int identity(1,1) primary key,
  6. 仓库号 varchar(50) unique,
  7. 城市 varchar(50) default('青岛'),
  8. 面积 int check(面积>=300 and 面积<=1800)
  9. )
use db_sqlserver;
go
create table db_table9
(
仓库编号 int identity(1,1) primary key,
仓库号 varchar(50) unique,
城市 varchar(50) default('青岛'),
面积 int check(面积>=300 and 面积<=1800)
)

向表中添加记录:

  1. insert into [db_sqlserver].[dbo].[db_table9](仓库号, 面积) values('400', 1600);
 insert into [db_sqlserver].[dbo].[db_table9](仓库号, 面积) values('400', 1600);

仓库编号会自动增加

8:创建含有排序字段的数据表

  1. create table db_table10
  2. (
  3. 仓库编号 int identity(1, 1) primary key,
  4. 仓库号 varchar(50) collate french_CI_AI not null,
  5. 城市 varchar(50) default '青岛',
  6. 面积 int check(面积>=300 and 面积<=1800)
  7. )
create table db_table10
(
仓库编号 int identity(1, 1) primary key,
仓库号 varchar(50) collate french_CI_AI not null,
城市 varchar(50) default '青岛',
面积 int check(面积>=300 and 面积<=1800)
)

仓库号是一个排序字段,其中CI(case insensitive)表示不区分大小写,AI(accent insensitive)表示不区分重音,即创建的是一个不区分大小写

和不区分重音的排序。如果要区分大小和和区分排序,修改代码为:French_CS_AS

9:动态判断数据库表是否存在

  1. use db_sqlserver;
  2. go
  3. if(Exists(select * from sys.sysobjects where id=OBJECT_ID('db_table9')))
  4. print '数据库表名已经存在'
  5. else
  6. print '该数据库表名不存在,可以利用该名创建表'
use db_sqlserver;
go
if(Exists(select * from sys.sysobjects where id=OBJECT_ID('db_table9')))
print '数据库表名已经存在' else
print '该数据库表名不存在,可以利用该名创建表'

10:查看表的各种信息,可以查看指定数据库表的属性、表中字段属性、各种约束等信息

  1. use db_sqlserver;
  2. go
  3. execute sp_help db_table9;
use db_sqlserver;
go
execute sp_help db_table9;

11:用select语句查看数据库表的属性信息

  1. use db_sqlserver;
  2. go
  3. select * from sysobjects where type='U'
use db_sqlserver;
go
select * from sysobjects where type='U'

12:重命名数据库表

  1. use db_sqlserver;
  2. go
  3. execute sp_rename "db_table9", "db_renametable"
use db_sqlserver;
go
execute sp_rename "db_table9", "db_renametable"

13:增加数据库表的新字段

  1. use db_sqlserver;
  2. go
  3. alter table db_table1 add 电子邮件 varchar(50)
  4. alter table db_table1 add 联系方式 varchar(50) default '0532-88886396'
  5. select name 字段名, xusertype 类型编号, length 长度 from syscolumns where id = object_id('db_table1')
use db_sqlserver;
go
alter table db_table1 add 电子邮件 varchar(50)
alter table db_table1 add 联系方式 varchar(50) default '0532-88886396' select name 字段名, xusertype 类型编号, length 长度 from syscolumns where id = object_id('db_table1')


14:修改数据库表的字段

  1. use db_sqlserver;
  2. go
  3. alter table db_table1 alter column 电子邮件 varchar(200)
  4. select name 字段名, xusertype 类型编号, length 长度 from syscolumns where id = object_id('db_table1')
use db_sqlserver;
go
alter table db_table1 alter column 电子邮件 varchar(200) select name 字段名, xusertype 类型编号, length 长度 from syscolumns where id = object_id('db_table1')


15:删除数据库表字段

  1. use db_sqlserver;
  2. go
  3. alter table db_table1 drop column 电子邮件
  4. select name 字段名, xusertype 类型编号, length 长度 from syscolumns where id = object_id('db_table1')
use db_sqlserver;
go
alter table db_table1 drop column 电子邮件 select name 字段名, xusertype 类型编号, length 长度 from syscolumns where id = object_id('db_table1')


16:删除数据库表

  1. use db_sqlserver;
  2. go
  3. drop table db_table1
  4. drop table db_table1, db_table2
use db_sqlserver;
go
drop table db_table1
drop table db_table1, db_table2

如果删除有依赖关联的数据库表,即主键、外键关键表、则要删除两个表之间的关联约束,然后才能删除表。注意,也可以先删除引用该表的数据库表,然后 即可删除该表,

在sqlserver中创建表的更多相关文章

  1. SqlServer中创建Oracle连接服务器

    转自太祖元年的:http://www.cnblogs.com/jirglt/archive/2012/06/10/2544025.html参考:http://down.51cto.com/data/9 ...

  2. SqlServer中创建Oracle链接服务器

    SqlServer中创建Oracle链接服务器 第一种:界面操作 (1)展开服务器对象-->链接服务器-->右击“新建链接服务器” (2)输入链接服务器的IP (3)链接成功后 第二种:语 ...

  3. 【转载】Sqlserver在创建表的时候如何定义自增量Id

    在Sqlserver创建表的过程中,有时候需要为表指定一个自增量Id,其实Sqlserver和Mysql等数据库都支持设置自增量Id字段,允许设置自增量Id的标识种子和标识自增量,标识种子代表初始自增 ...

  4. Sqlserver中判断表是否存在

    在sqlserver(应该说在目前所有数据库产品)中创建一个资源如表,视图,存储过程中都要判断与创建的资源是否已经存在  在sqlserver中一般可通过查询sys.objects系统表来得知结果,不 ...

  5. Oracle SQLserver数据库创建表ID字段的自动递增_序列

    Oracle 将表t_uaer的字段ID设置为自增:(用序列sequence的方法来实现) ----创建表 Create table t_user( Id ),userid ),loginpasswo ...

  6. 如何导出sqlserver中的表数据,sqlserver2008

    sqlserver数据库中的表数据,我们通常想使用一下,可是怎样获取这些数据呢? 1.选择任务->生成脚本 2.选择数据库 3.设置配置,让编写数据的脚本为true 4.保存为sql 5.完成 ...

  7. SQL Server 向数据库中创建表并添加数据

    创建表,展开数据库中新建的数据库,下面有一个选项-表.在该选项上右键就可以选择-新建-表. 然后出现的界面上是需要自己填写列列名.数据类型和选择是否允许空值. 其中数据类型我是参考: http://w ...

  8. mysql中,创建表的时候指定if not exists参数的作用?

    需求说明: 在创建表的时候,如果指定if not exists语句,有什么作用,在此做个实验,并且官方手册, 理解下这个参数的作用. 操作过程: 1.创建测试表test01 mysql> cre ...

  9. Sql语句在SqlServer中创建数据库、表格并添加约束

    通过Sql语句来创建数据库与架构 创建数据库 数据库的创建首先是要引用主数据库的,需要在master数据库的环境下进行创建.大致的语法如下: -- 使用master数据库 use master -- ...

随机推荐

  1. C++中的快读和快写

    快读原理 单个字符的读入速度要比读入数字快,因此我们以字符的形式先读入,然后处理计算转为数字. 代码 inline int read(){ register int x = 0, t = 1; reg ...

  2. 终于弄明白了 Singleton,Transient,Scoped 的作用域是如何实现的

    一:背景 1. 讲故事 前几天有位朋友让我有时间分析一下 aspnetcore 中为什么向 ServiceCollection 中注入的 Class 可以做到 Singleton,Transient, ...

  3. 善用Bash history 命令

    大家好,我是良许 相信大家平时都有用 history 命令来查看命令历史记录,但是实际上 history 命令并非只有这个功能,history 还有很多有用的功能.尤其是 Bash 版本的 histo ...

  4. Android开发值利用Intent进行put传值,setclass启动activity,并用get进行取值

    传值方法一 [java] Intent intent = new Intent(); Bundle bundle = new Bundle(); //该类用作携带数据 bundle.putString ...

  5. ETC1

    对纹理进行Alpha通道分离的好处 https://blog.csdn.net/u011926026/article/details/53982180 拆分贴图的Alpha通道 --对抗ETC1的原罪 ...

  6. Lua C API的正确用法

    http://blog.codingnow.com/2015/05/lua_c_api.html http://blog.csdn.net/oilcode/article/details/510861 ...

  7. Mac本地生成SSHKey的方法

    1. 查看秘钥是否存在 打开终端查看是否已经存在SSH密钥:cd ~/.ssh 如果没有密钥则不会有此文件夹,有则备份删除,   也可以直接删除, 2.生成新的秘钥, 命令如下 $ssh-keygen ...

  8. 2019HNCPC C Distinct Substrings 后缀自动机

    题意 给定一个长度为n字符串,字符集大小为m(1<=n,m<=1e6),求\(\bigoplus_{c = 1}^{m}\left(h(c) \cdot 3^c \bmod (10^9+7 ...

  9. Axios拦截器配置

    Axios 拦截器的配置如下 分三块:基础配置.请求之前拦截.响应之前拦截 发送所有请求之前和操作服务器响应数据之前对这种情况过滤. http request 请求拦截器 每次发送请求之前判断是否存在 ...

  10. oracle 11g 导入表时 提示 ***值太大错误

    导入数据库时,总是提示**值太大,实际值是**的错误. 具体忘了错误代码是什么了 ——! 经查询,这个是由于字符集设置的不是gbk的,导致导入时遇到中文字符出现的问题, 解决方法: 如果可以的话就把数 ...