您的位置:首页 > 数据库

在SQL server中设置表的自动编号功能

2005-06-06 14:41 246 查看
       我们都知道很多的数据库软件都为表提供了自动编号的功能,这对于进行有些表的功能是十分有用 的,可以减少很多不必要工作,由于SQL server是我最近才使用的所以,在这个过程中遇到了一些问题,但是经过查找资料和摸索总算是解决了,所以现在将自己的心得写下,希望当你遇到同样问题时,可以快速的解决.
    在SQL server中要实现自动可以有两种方式:
    1.通过"企业管理器",以窗口形式创建,打开如图所示的窗口,这里我们以在test数据库中创建test表的id为自动编号字段为例:



      首先:通过"数据库"的弹出菜单"新建数据库" 新建一个数据库test;
      然后:选择建好的test数据库,在窗口中选择"表",单击右键,在弹出的菜单选择"新建表",则会进入表设计器进行表的设计.下图是设置的效果.在设计完成后,单击关闭按钮进行保存,并将其命名为"test"



     
    2.通过"查询分析器"以SQL方式创建,打开查询分析器,在查询窗口中输入SQL语句
       create database test  --创建test数据库
       create table test (id int IDENTITY(1,1)  not null,test text) --其中的IDENTITY(自动编号的初始舒值,自动编号的增量)即设置自动编号.
    3 注意:
      (1)一个表只能有一列定义为自动编号属性,
      (2)在SQL server中能够进行自动编号的几种数据类型为: decimal、int、numeric、smallint、bigint 或 tinyint。
      (3)在创建了自动编号的表中用sql语句插入数据时,其insert中不要包括自动编号的列即如果要在上述test表中插入一行数据,其insert语句就应为:insert into test (test) values ('this is a test table') 或 insert into test values('this is a test table'),而不能使用insert into test (id,test) values ('','this is a test table') 或者 insert into test  values ('','this is a test table').否则就会出现"当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'test' 中的标识列插入显式值。"的错误提示.如果你一定要在自动编号列中插入特定的行如要执行insert into test values (1,'this is not a test table') ,可以通过首先运行 set IDENTITY_insert test(即表名) on语句来实现.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息