SQL自动编号
2010-06-11 13:00
176 查看
原文地址:http://blog.csdn.net/hfly2005/archive/2005/06/06/388809.aspx
我们都知道很多的数据库软件都为表提供了自动编号的功能,这对于进行有些表的功能是十分有用 的,可以减少很多不必要工作,由于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语句来实现.
我们都知道很多的数据库软件都为表提供了自动编号的功能,这对于进行有些表的功能是十分有用 的,可以减少很多不必要工作,由于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语句来实现.
相关文章推荐
- Access转成Sql 2008步骤,同时解决自动编号问题,主键,id数值不重置
- Sql 自动产生编号
- SQL获取下个一个自动生成的编号
- sql自动编号字段
- 聚合以及连接以及自动编号的SQL
- sql语句自动编号
- 同一表内,各部份行自动重新编号T-SQL处理代码
- SQL语句给某一列自动编号
- SQL 查询 自动按顺序编号
- 推荐SQL Server 重新恢复自动编号列的序号的sql代码
- SQL自动计算带字母的编号
- 有订单表SO_Table,单号字段RefNo VARCHAR(10),需要实现自动编号,格式为YYYYMMXXXX,其中XXXX为序号,如:2004050001,2004050002……2004059999等,采用Transact-SQL实现新订单编号的思
- 动态SQL根据旧编号自动排序生成有规则的新编号
- sql加一列自动编号
- MS-SQL转换成ACCESS(解决自动编号的问题)
- 在SQL 2000中实现自动编号
- 小议SQL_Server主键和自动编号问题
- [学习]利用SqlDataAdapter Insertcommand 获取刚新增的自动编号ID值
- [转]SQL 2000 Insert返回自动编号id三种方法比较
- sql如何设置自动编号列的SEED