机房重构---数据库自增字段设置

   在敲机房的过程中,对于数据库这块学到了很多新的知识,类似于“存储过程”、“触发器”、“视图”,这“三大件”在机房重构的时候都有新的认识,就像今天中午和李芬聊天时候聊到了学习是一个迭代的过程,不要指望一次就把知识学会、学以致用;也不要因为感觉在学的过程中不够扎实而感到恐惧、厌学,要知道每个人的情况都是差不多的,没有人一次就学的特别扎实,So你需要认识到,在我们学习的过程中什么是“不怕不知道,就怕不知道”。

    话说多了,下面看问题:

                        

    这是我的WorkLog_Info表,就是用于在管理员下拉菜单下“教师工作记录查询”对应的数据表,其中第一个字段Serial的设计理念是每当一次用户登录系统在该表中记录一条记录,而且每条记录有一个自增的字段,Serial就是这个自增的字段。

 

  如何设置这个标识字段呢?

 

   方法一:手动设置

   (1)单击菜单栏,选择“工具”,单击“选项”,选择“designers”,将“阻止保存要求重新创建表的更改”之前的对勾去掉。

   (2)在“对象资源管理器”中右击相应的表,单击“设计”,选中如上图所示的要作为“标识字段”的一列(前提:这一列的数据类型为“INT”,我就因为数据类型为“varchar(20)实验了好几次才发现错误”)。

   (3)在下方的“列属性”中将“标识规范”选择为“是”,切记如果相应字段的数据类型为非INT,这个属性将是“只读”属性。同时将“标识增量”、“标识种子”设置为相应的值。

   (4)单击保存。

                               

    解释:“标识增量”:序列的初始值。

          “标识种子”:序列增长的步长。

           一般情况两者都设置为“1”。      

 

  方法二:代码设置

   这种方法的核心在于“IDENTITY”的设置

   (1)创建一张数据表或者修改一张数据表:

CREATE TABLE ZZH_JF1(
StdNo INT IDENTITY(1,1) PRIMARY KEY,
StdName VARCHAR(50)
)
GO

 

   创建一张只有学号和学生姓名的数据表,如上代码,IDENTITY(1,1)即代表插入的序列号从1开始,步长为1.

   验证:

INSERT INTO ZZH_JF1(StdName) VALUES (‘张振华’);
 INSERT INTO ZZH_JF1(StdName) VALUES (‘张国强’);
 INSERT INTO ZZH_JF1(StdName) VALUES (‘张跃进’)

   结果如下:

   SELECT * FROM ZZH_JF1

    实验成功!

    但是需要注意: 当我把插入语句写成这样

INSERT INTO ZZH_JF1(StdNo,StdName) VALUES ('01','张振华');

       会提示:


      就是说,在向数据库中添加记录的时候,自增字段就不要去管它了。


   至于为什么要添加这样的一个字段,我个人觉得,(1)当设置一个递增序列之后,首先能够保证消息的唯一性,即使是内容相同的两条记录,通过记录号,可以将其区分;(2)当删除过之前的记录时候,序列号仍然递增,相当于不用将所有记录保存就可以看这个表存在过多少条记录。

 

   Summary:

    就像今天的这个“标识列自增”问题,在第一次机房的时候也遇到过这个问题,但是就放过了,这次重新拾起来,很简单的解决方法,但是为什么要把它写出来,我想对于我自己来说,更多的是一种不将就的学习习惯的养成,是一种对自我不断突破的记录,加油,我还可以做的更好。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 47
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 47
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值